Не заполненные даты в дневнике. ППМ
Я уже ранее написал запрос, который показывал мне не завершенные в дневнике даты.
Когда я заканчиваю дневник за дату, я пишу в начале даты запись дневника с заголовком ОК:

Прошлый запрос показывал мне даты без таких записей.
Но он не работал, если за день не было вообще никаких записей.
Пришлось написать обработку, которая строит массив дат и получает не завершенные даты запросом:

Все бы ничего, но иногда я ставлю ОК в середине дня, если дописал записи только до этого момента. А это не завершенные дни, такие тоже надо дописывать.
В итоге доработал запрос и он стал таким:

Форма обработки простая:

Код тоже не сложный:
&НаСервере Процедура СформироватьНаСервере() Тдаты = Новый ТаблицаЗначений(); ТДаты.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата")); Дата = Дата1; Пока Дата <= Дата2 Цикл ТДаты.Добавить().Дата = Дата; Дата = Дата + 24*3600; КонецЦикла; З = Новый Запрос( "ВЫБРАТЬ | ТДаты.Дата КАК ДАТА |ПОМЕСТИТЬ ТДаты |ИЗ | &ТДаты КАК ТДаты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ТДаты.ДАТА КАК Дата |ИЗ | ТДаты КАК ТДаты |ГДЕ | НЕ ТДаты.ДАТА В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | НАЧАЛОПЕРИОДА(ВнутреннийДневник.Дата, ДЕНЬ) КАК Дата | ИЗ | Справочник.Дневник КАК ВнутреннийДневник | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МИНИМУМ(Т.Дата) КАК МинДата, | НАЧАЛОПЕРИОДА(Т.Дата, ДЕНЬ) КАК День | ИЗ | Справочник.Дневник КАК Т | СГРУППИРОВАТЬ ПО | НАЧАЛОПЕРИОДА(Т.Дата, ДЕНЬ)) КАК ВнутреннийДневникМин | ПО | НАЧАЛОПЕРИОДА(ВнутреннийДневник.Дата, ДЕНЬ) = ВнутреннийДневникМин.День | ГДЕ | ВнутреннийДневник.Наименование ПОДОБНО &Подстрока | И ВнутреннийДневник.Дата = ВнутреннийДневникМин.МинДата)"); З.УстановитьПараметр("Тдаты", Тдаты); З.УстановитьПараметр("Подстрока", Подстрока); Выборка = З.Выполнить().Выбрать(); Сч = 1; Пока Выборка.Следующий() Цикл Сообщить("" + Сч + ": " + Формат(Выборка.Дата, "ДФ=dd.MM.yyyy") + " " + ДеньНедели(Выборка.Дата)) ; Сч = Сч + 1; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) Если НЕ ЗначениеЗаполнено(Дата1) Тогда ПоказатьПредупреждение(, "Заполните начальную дату!"); Возврат; КонецЕсли; ОчиститьСообщения(); СформироватьНаСервере(); КонецПроцедуры
Дневник веду с 3 мая 2020, пометки ОК начал делать с 25 июля 2020.
В итоге полный список пропущенных дней содержит 44 пропуска:


Свежие комментарии