Эксель в умелых руках 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");
  ПланыОбмена.ЗарегистрироватьИзменения(ИскУзел, ИскДокумент);
 Иначе
  Сообщить("Не найден документ: " + Номер + " " + Дата);
 КонецЕсли;
КонецФункции

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

Архив записей в блогах:
У многих государств есть свое коллективное бессознательное. Его формируют какие-либо важные события и выдуманные легенды,  их описывающие. Предположу что для российского шовинизма императивом стала победа над Наполеоном. Действительно шикарное событие, спору нет. Грозный корсиканец ...
Интересно, кто проплатил что надо бороться со ВСЕМИ мигрантами. 1. Раньше уже скинхеды боролись за чистоту русских. Кто оплачивал их услуги? 2. На Донбассе воюют только русские? 3. Со своей мразью в России уже разобрались? НЕТ их кормят с ложечки. 4. Когда в России будет один закон ...
«Беременные россиянки столкнулись с серьезным дефицитом антирезусного иммуноглобулина — препарата, который помогает женщинам выносить плод и родить при развитии резус-конфликта между организмом матери и ребенка. О его нехватке в некоторых регионах стало известно в августе этого года, но ...
Открываем зверинец . Активист "Единой России", лидер питерского отделение "Молодой Гвардии" и помощник В.Милонова Артемий Мурзаков (Галицын), активно выступающей против "пропаганды гомосексуализма", застукан за пропагандой ...
На изображении из видеоролика NASA (на 2 час. 47 мин. 43 сек.) зелёным отмечены некоторые шестиугольные кратеры. Зелёным отмечены некоторые из обнаруженных шестиугольных кратеров на ...