Проведенные чеки без движений в УНФ
В УНФ обнаружились проведенные чеки без движений, за период в два года таких набралось 81 штука. Если такие чеки перепровести, движения появляются.
Нашел все такие чеки запросом:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Т.Ссылка КАК Ссылка, Т.Организация, Т.СуммаДокумента
ИЗ
Документ.ЧекККМ КАК Т
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
ПО (Продажи.Регистратор = Т.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах КАК ЗапасыНаСкладах
ПО (ЗапасыНаСкладах.Регистратор = Т.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПокупателями КАК РасчетыСПокупателями
ПО (РасчетыСПокупателями.Регистратор = Т.Ссылка)
ГДЕ
Т.Проведен
И Т.Дата МЕЖДУ &Дата1 И &Дата2
И Продажи.Регистратор ЕСТЬ NULL И ЗапасыНаСкладах.Регистратор ЕСТЬ NULL И РасчетыСПокупателями.Регистратор ЕСТЬ NULL
УПОРЯДОЧИТЬ ПО Т.Организация, Т.Дата
Но хотелось бы, чтобы УНФ их автоматом проводила.
Поэтому написал код перепроведения:
Процедура ОбработатьНеПроведенныеЧеки() Экспорт //Отладка: дор_С.ОбработатьНеПроведенныеЧеки() ДнейПроверки = 100; //Насколько глубоко внутрь обрабатываем чеки Дата2 = КонецДня(ТекущаяДата()); Дата1 = началоДня(Дата2) - 3600*24*ДнейПроверки; З = Новый Запрос(); З.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Т.Ссылка КАК Ссылка, | Продажи.Регистратор КАК Регистратор |ИЗ | Документ.ЧекККМ КАК Т | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи | ПО (Продажи.Регистратор = Т.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах КАК ЗапасыНаСкладах | ПО (ЗапасыНаСкладах.Регистратор = Т.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПокупателями КАК РасчетыСПокупателями | ПО (РасчетыСПокупателями.Регистратор = Т.Ссылка) |ГДЕ | Т.Проведен | И Т.Дата МЕЖДУ &Дата1 И &Дата2 | И Продажи.Регистратор ЕСТЬ NULL | И ЗапасыНаСкладах.Регистратор ЕСТЬ NULL | И РасчетыСПокупателями.Регистратор ЕСТЬ NULL"; З.УстановитьПараметр("Дата1", Дата1); З.УстановитьПараметр("Дата2", Дата2); Выборка = З.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Попытка ДО = Выборка.Ссылка.ПолучитьОбъект(); ДО.Записать(РежимЗаписиДокумента.Проведение); Исключение ЗаписьЖурналаРегистрации("Отладка.ПроведениеЧековБезДвижения",,, Выборка.Ссылка, "Не удалось провести: " + ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры
И добавил его в регламентное задание, выполняющееся редко, раз в 2 часа. Теперь таких чеков не должно быть.
Среда: 3.0.13.238 Объем: 0.8 час.
