Банковская выписка (БВ)- самый функциональный документ конфигурации.
Проблема :
На предприятие в течение одного банковского дня поступают платежи по одному заказу. Организационно этого избежать нельзя.Поступают деньги по договору за полученную большую партию товаров. Возникают «дубли строк».
Решение «Гл.Бухов» - снимается константа «Проверять дубли строк». Документ проводится. «Указывать отгрузку, Сумма отгрузки, НДС отгрузки» не рассчитываются – не барское это дело! Банк обработан…. Первое (второе) события отдыхают, движение товара… Крайний, как всегда, 1С- ник.
Если мое решение кому-нибудь пригодится, буду рад
Закомментировать проверку дублей строк
Функция ПроверкаШапки()
глВсеВыбрано = 1;
глПроверкаДатыДок(Контекст,"Проведение");
глВыбранЛи(Фирма,"Фирма");
глВыбранЛи(РСчет,"Расчетный счет");
глВыбранЛи(СчетУчета,"Бухгалтерский счет учета денежных средств");
Если глВсеВыбрано = 1 Тогда
Если (РСчет.Валюта = Гривня) и (СчетУчета.Валютный = 1) Тогда
глКомментарий("Нельзя указывать валютный бухг. счет ("+СчетУчета+") для расчетного счета в гривнях!",0,,"!");
глВсеВыбрано = 0;
ИначеЕсли (РСчет.Валюта <> Гривня) и (СчетУчета.Валютный = 0) Тогда
глКомментарий("Нельзя указывать не валютный бухг. счет ("+СчетУчета+") для расчетного счета в валюте!",0,,"!");
глВсеВыбрано = 0;
КонецЕсли;
КонецЕсли;
Если глВсеВыбрано = 1 Тогда
// глВсеВыбрано = глПроверкаДублейСтрок(Контекст, 1);
КонецЕсли;
Возврат глВсеВыбрано;
КонецФункции
Модуль проведения теперь такой
Процедура ОбработкаПроведения()
Перем тз,тз1;
глКомментарий("Начало",2,Контекст);
ИспользоватьСчетНДС = глИспользоватьСчетНДС(Контекст);
Если ПроверкаШапки() = 0 Тогда
глНеПроводить(Контекст);
Возврат;
КонецЕсли;
Если РассчитатьШапку() = 0 Тогда
глНеПроводить(Контекст);
Возврат;
КонецЕсли;
// сворачивание
ВыгрузитьТабличнуюЧасть(тз);
ВыгрузитьТабличнуюЧасть(тз1); // резерв копия
УдалитьСтроки();
тз.Свернуть("ПриходРасход,Счет,ВидНДС,Субконто,Заказ,ДоходИздержка,
СубконтоДИ,УказанаОтгрузка","СуммаСНДС,НДС,Содержание");
ЗагрузитьТабличнуюЧасть(тз);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если ПроверкаСтроки() = 0 Тогда
глНеПроводить(Контекст);
УдалитьСтроки();
ЗагрузитьТабличнуюЧасть(тз1);
Возврат;
КонецЕсли;
Если РассчитатьСтроку() = 0 Тогда
глНеПроводить(Контекст);
УдалитьСтроки();
ЗагрузитьТабличнуюЧасть(тз1);
Возврат;
КонецЕсли;
ПроводкиСтрока();
КонецЦикла;
УдалитьСтроки();
ЗагрузитьТабличнуюЧасть(тз1);
Если РСчет.Валюта <> Гривня Тогда
глПереоценкаСчетов(Контекст, глТаблицаСчетов);
КонецЕсли;
Операция.СуммаОперации = СуммаПрихода - СуммаРасхода;
Операция.Содержание = Примечание;
Операция.Записать();
глКомментарий("Окончание",2,Контекст);
КонецПроцедуры
Вот и все. Альтернатива - подключить арифметику. Но это отдельная статья...
Погрешность методики – «Содержание». Результат «сворачивания» содержания попадает в комментарий проводки.
В таком виде работает более 3 лет.
Скриншоты документа, проводок представлены
1. Документ БВ
2. Операция документа после проведения (при использовании "сворачивания")
3. Результат проведения в типовой 277 релиз