У меня 4 ведомости отказались перепроводиться, пришлось немного допилить Этап 3
Процедура Этап3()
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", Дата(2016,01,01,0,0,0));
Запрос.УстановитьПараметр("ДатаОкончания", Дата(2016,12,31,23,59,59));
Запрос.Текст =
"ВЫБРАТЬ
| ВедомостьВБанк.Ссылка КАК Документ,
| ВедомостьВБанк.Дата КАК Дата
|ПОМЕСТИТЬ ВТДокументыОплаты
|ИЗ
| Документ.ВедомостьВБанк КАК ВедомостьВБанк
|ГДЕ
| ВедомостьВБанк.ДокументОснование.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ВедомостьВБанк.Проведен
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВедомостьВКассу.Ссылка,
| ВедомостьВКассу.Дата
|ИЗ
| Документ.ВедомостьВКассу КАК ВедомостьВКассу
|ГДЕ
| ВедомостьВКассу.ДокументОснование.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ВедомостьВКассу.Проведен
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТДокументыОплаты.Документ
|ИЗ
| ВТДокументыОплаты КАК ВТДокументыОплаты
|
|УПОРЯДОЧИТЬ ПО
| ВТДокументыОплаты.Дата";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДокументОбъект = ВыборкаДетальныеЗаписи.Документ.ПолучитьОбъект();
Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Исключение
Сообщить(Строка(ДокументОбъект.Ссылка) + ": "+ Строка(ИнформацияОбОшибке().Описание));
КонецПопытки;
КонецЦикла;
ВыборкаДетальныеЗаписи.Сбросить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДокументОбъект = ВыборкаДетальныеЗаписи.Документ.ПолучитьОбъект(); //: ОбъектДок = Документы.ВедомостьВБанк.СоздатьДокумент();
МассивДокументовКПерепроведению = ПроверитьХронологиюУчетаУдержанногоНДФЛ(ДокументОбъект.Организация, ДокументОбъект.Зарплата.ВыгрузитьКолонку("Физлицо"), ?(ЗначениеЗаполнено(ДокументОбъект.ДатаВыплаты), ДокументОбъект.ДатаВыплаты, ДокументОбъект.Дата));
ОбработатьЗависимыеДокументы(МассивДокументовКПерепроведению, РежимЗаписиДокумента.ОтменаПроведения);
Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
ОбработатьЗависимыеДокументы(МассивДокументовКПерепроведению, РежимЗаписиДокумента.Проведение);
Исключение
Сообщить(Строка(ДокументОбъект) + ": "+ Строка(ИнформацияОбОшибке().Описание));
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Функция ПроверитьХронологиюУчетаУдержанногоНДФЛ(Организация, Сотрудники, ДатаРегистрации) Экспорт
МассивДокументовКПерепроведению = Новый Массив;
УпрощенныйУчетНДФЛ = ПроцедурыУправленияПерсоналом.ЗначениеУчетнойПолитикиПоПерсоналуОрганизации(глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"), Организация, "УпрощенныйУчетНДФЛ");
Если УпрощенныйУчетНДФЛ Тогда
Возврат МассивДокументовКПерепроведению
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаРегистрации", КонецДня(ДатаРегистрации));
Запрос.УстановитьПараметр("Сотрудники", Сотрудники);
Запрос.УстановитьПараметр("ОбособленноеПодразделение", Организация);
Запрос.УстановитьПараметр("Организация", ОбщегоНазначенияЗК.ГоловнаяОрганизация(Организация));
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НДФЛРасчетыСБюджетом.Регистратор
|ИЗ
| РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
|ГДЕ
| НДФЛРасчетыСБюджетом.ФизЛицо В(&Сотрудники)
| И НДФЛРасчетыСБюджетом.Организация = &Организация
| И НДФЛРасчетыСБюджетом.ОбособленноеПодразделение = &ОбособленноеПодразделение
| И НДФЛРасчетыСБюджетом.Период > &ДатаРегистрации
| И НДФЛРасчетыСБюджетом.ВидСтроки = ЗНАЧЕНИЕ(Перечисление.НДФЛРасчетыСБюджетомВидСтроки.Удержание)
| И НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
МассивДокументовКПерепроведению.Добавить(Выборка.Регистратор);
КонецЦикла;
КонецЕсли;
Возврат МассивДокументовКПерепроведению;
КонецФункции
Функция ОбработатьЗависимыеДокументы(МассивДокументовКПерепроведению, РежимПроведения)
Для Каждого Документ Из МассивДокументовКПерепроведению Цикл
ДокументОбъект = Документ.ПолучитьОбъект();
Попытка
ДокументОбъект.Записать(РежимПроведения);
Исключение
Сообщить(Строка(ДокументОбъект) + ": "+ Строка(ИнформацияОбОшибке().Описание));
КонецПопытки;
КонецЦикла;
КонецФункции
Показать