fixin (fixin) wrote,
fixin
fixin

Корректировка регистра на 80 документов

Мне прислали список из 80 документов, суммы которых нужно было внести в УПП в документ корректировки записей регистров для того, чтобы закрыть регистр «Расчеты по реализации».
Вручную подбирать документы было лень и я автоматизировал процесс.

Сперва занес таблицу в Эксель и там получил для каждой строчки код:



Обработать("Платежное поручение входящее 10000004558 от 01.09.2016 0:00:00","341,25");
Обработать("Платежное поручение входящее 10000004598 от 02.09.2016 0:00:00","682,5");
Обработать("Платежное поручение входящее 10000004639 от 05.09.2016 0:00:00","341,25");
Обработать("Платежное поручение входящее 10000004656 от 06.09.2016 0:00:00","682,5");
Обработать("Платежное поручение входящее 10000004690 от 07.09.2016 0:00:00","1587,3");
Обработать("Платежное поручение входящее 10000004709 от 08.09.2016 0:00:00","2722,2");
Обработать("Платежное поручение входящее 10000004735 от 09.09.2016 0:00:00","795,6");
Обработать("Платежное поручение входящее 10000004754 от 12.09.2016 0:00:00","6493,8");
Обработать("Платежное поручение входящее 10000004777 от 13.09.2016 0:00:00","2517,6");


Для генерации кода использовал функцию Excel: =СЦЕПИТЬ("Обработать(""";A1;""",""";B1;""");")

Далее набросал простой код:


Перем мНЗ;

Процедура
КнопкаВыполнитьНажатие(Кнопка)
 
мНЗ = РегистрыНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.СоздатьНаборЗаписей();
 
МНЗ.Отбор.Регистратор.Значение = ВыбКорректировка;
 
Обработать("Платежное поручение входящее 10000004558 от 01.09.2016 0:00:00","341,25");
 
Обработать("Платежное поручение входящее 10000004598 от 02.09.2016 0:00:00","682,5");
 
Обработать("Платежное поручение входящее 10000004639 от 05.09.2016 0:00:00","341,25");


 Обработать("Платежное поручение входящее 10000007130 от 30.12.2016 0:00:00","798,9");
 
мНЗ.Записать();
КонецПроцедуры


Функция
Обработать(ППВ, Сумма)
 Если
ППВ = "" Тогда
  Возврат ложь;
 КонецЕсли;

 
ППВ_Номер = Сред(ППВ, 30, 11);
 
ППВ_Дата = Дата(Сред(ППВ, 51, 4) + Сред(ППВ, 48, 2) + Сред(ППВ, 45, 2));

 
ППВ_Ссылка = Документы.ПлатежноеПоручениеВходящее.НайтиПоНомеру(ППВ_Номер, ППВ_Дата);
 Если НЕ
ЗначениеЗаполнено(ППВ_Ссылка) Тогда
 
Сообщить("Не найден документ: " + ППВ);
  Возврат ложь;
 КонецЕсли;

 
ТекСумма = -Число(Сумма);

 
МЗ = мНЗ.Добавить();
 
МЗ.Период = ВыбКорректировка.Дата;
 
МЗ.Документ = ППВ_Ссылка;
 
МЗ.СуммаРег = ТекСумма;
 
МЗ.СуммаВзаиморасчетов = ТекСумма;
 
МЗ.Организация = ППВ_Ссылка.Организация;
 
МЗ.ДоговорКонтрагента = ППВ_Ссылка.ДоговорКонтрагента;
 
МЗ.Контрагент = ППВ_Ссылка.Контрагент;
 
МЗ.СчетОплаты = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
 
МЗ.ДатаОплаты = ТекущаяДата();
КонецФункции

Создал документ корректировки, выбрал его в форму и вуаля – всё сработало.

Экономия времени налицо, вместо рутины занимался креативом. Обработка одноразовая, но время сэкономила.

Tags: , Опыт
Subscribe

Posts from This Journal “1С” Tag

promo fixin december 28, 2020 16:57 1379
Buy for 30 tokens
Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект " Секс за Ваши". Если вы хотите написать пост обо мне или почитать, что пишут…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments