Эксель в умелых руках 1сника

топ 100 блогов fixin17.08.2016

Была у меня такая задача - клиент предоставил список платежек, которые нужно было зарегистрировать в УТ, чтобы они мигрировали в БП. Они не попали туда из-за сбоев обмена.

Список был большой, порядка 300 документов, регистрировать вручную было неразумно.

Эксель в умелых руках 1сника

Поэтому я прямо в Экселе сгенерировал код для 1С формулой вида:

=СЦЕПИТЬ("ЗАРЕГИСТРИРОВАТЬППИ("""; G2;""",'";ТЕКСТ(F2;"ГГГГММДД");"');")

На рисунке полученный код в последней колонке. Осталось только вставить код в обработку и запустить!

Такой метод часто применяется для решения разовых задач. Код 1С под катом.

Еще нюанс в том, что нужно было обрабатывать только выделенные желтым строки. Но их можно было отфильтровать автофильтром.

Проблема возникла в другом - в БП эти данные упорно не грузились. На саму обработку регистрации потратил полчаса и еще час, чтобы понять, почему. Все оказалось просто - в БП3 есть дата запрета загрузки. Увидел сообщения в журнале регистрации вида "Дате 25.09.2015 соответствует запрет загрузки данных для информационной базы "Управление торговлей, ред" по 30.06.2016 (установлена общая дата запрета)".

А так пока не залез в ЖР, дошел даже до того, что загрузил правила обмена в КД, думал, там какая-то заточка зашита. Бывает, иногда подтупливаю.

В форме по кнопке просто вызываю процедуру для каждой платежки и если она найдена, регистрирую ее на узле обмена.

Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗАРЕГИСТРИРОВАТЬППИ("М0000005695",'20150908');
ЗАРЕГИСТРИРОВАТЬППИ("М0000005696",'20150909');
ЗАРЕГИСТРИРОВАТЬППИ("М0000005697",'20150910');
....
....
ЗАРЕГИСТРИРОВАТЬППИ("",'20151120');
ЗАРЕГИСТРИРОВАТЬППИ("",'20151218');
ЗАРЕГИСТРИРОВАТЬППИ("",'20160122');
ЗАРЕГИСТРИРОВАТЬППИ("",'20160219');
ЗАРЕГИСТРИРОВАТЬППИ("",'20160321');
КонецПроцедуры

Функция ЗАРЕГИСТРИРОВАТЬППИ(Номер,Дата)
 Если ЗначениеЗаполнено(Номер) Тогда
  З = Новый Запрос(
  "ВЫБРАТЬ
  | Т.Ссылка,
  | Т.Дата,
  | Т.Контрагент
  |ИЗ
  | Документ.ПлатежноеПоручениеВходящее КАК Т
  |ГДЕ
  | НАЧАЛОПЕРИОДА(Т.Дата, ДЕНЬ) = &Дата
  | И Т.Номер = &Номер");
 Иначе
  З = Новый Запрос(
  "ВЫБРАТЬ
  | Т.Ссылка,
  | Т.Дата,
  | Т.Контрагент
  |ИЗ
  | Документ.ПлатежныйОрдерСписаниеДенежныхСредств КАК Т
  |ГДЕ
  | НАЧАЛОПЕРИОДА(Т.Дата, ДЕНЬ) = &Дата
  | И Т.Контрагент.Наименование = ""Рога и Ко""");
 КонецЕсли;
 З.УстановитьПараметр("Номер", Номер);
 З.УстановитьПараметр("Дата", Дата);
 Выборка = З.Выполнить().Выбрать();
 Если Выборка.Следующий() Тогда
  ИскДокумент = Выборка.Ссылка;
  Сообщить(ИскДокумент);
  ИскУзел = ПланыОбмена.ОбменУправлениеТорговлей103БухгалтерияПредприятия30.НайтиПоКоду("002");
  ПланыОбмена.ЗарегистрироватьИзменения(ИскУзел, ИскДокумент);
 Иначе
  Сообщить("Не найден документ: " + Номер + " " + Дата);
 КонецЕсли;
КонецФункции

Оставить комментарий

Архив записей в блогах:
Что происходит с российской нефтянкой в последнее время — для всех загадка. Ее экспорт ушел в «тень», нефть и нефтепродукты вывозятся на «тайном» флоте — армаде из 400 старых танкеров (срочно приобретенных после марта 2022 года), зарегистрированных на офшоры с невыясненными ...
https://lenta.ru/news/2022/01/22/sits/ Председатель КНР Си Цзиньпин мог попросить российского президента Владимира Путина не вторгаться в Украину во время Олимпиады в Пекине, запланированной на зиму 2022 года. О просьбе на этот счет пишет Bloomberg со ссылкой на пекинского дипломата. ...
Мне выпала особая честь от лица коллектива нашего блога поздравить всех наших ...
Из постоянного цикла - Железнодорожные фото, которые привлекли мое внимание, - пишет flackelf 1. Новейший дизель-поезд Мытищинского производства РА3 в Брянской области. Участок Навля - Льгов. Ноябрь 2019 года. https://www.trainpix.org/photo/261056/ 2. Довольно ...
- Будущие поколения предают забвению тех, кто думает только о своей собственной пользе, и покрывают славой тех героев, кто отказался от своего собственного счастья в пользу общества  -    Сегодня утром я вместе с главой Русского клуба ...