Выгрузка акта для ЭДО

Когда я купил себе немного ЭДО от Астрал, обнаружил, что файлы из 1С не так-то просто выгрузить. Если это не 1С:ЭДО, то задача не решается без «костылей». Это разве честная конкуренция?

Ну да ладно. Нашел один из таких костылей на Инфостарте. Скачал обработку — работает. Комментарии, правда, запрещены. Причем, можно выгружать сразу несколько документов — это внешняя печатная форма.

Плохо, конечно, что выгружает в архивы, приходится распаковывать. Ну да ладно.

Но счастье было недолгим. Перестало выгружать.

Оказалось, 1С поменяло логику процедуры ВыгрузитьДанныеВФайл. Если раньше параметр ПараметрыВыполненияКоманды был не обязательным, то теперь там должна быть структура:

Поправил, заработало.

У меня был месяц бесплатной отправки любого количества документов. Я собрался и выгрузил большой пакет актов:

Но он не загрузился в Астрал:

Как вам такой уровень диагностики ошибок? Стыдно, Астрал!

Попробовал проверить файл на Контур-Диадок, он не смог переварить этот файл:

Я написал в поддержку, но пока они неспешно отвечали, подумал, может проблема только у ИП и попробовал выгрузить акт с ООО. И тут меня ждали незабываемые «приключения».

Дело оказалось в том, что у договора не стоял акт, но 1С никак не извещало об ошибках — даже в журнал регистрации не пишет. Ошибку я нашел только отладчиком.

Увы, акт по ООО тоже не подгрузился.

Тогда я проверил сформированные ранее из 1С файлы. Они благополучно загружались в ЭДО Астрал. Тогда я подумал, что проблема может быть в ошибке текущего релиза 1С и решил обновить 1С до текущего релиза:

Но тут меня ждали очередные «пляски на граблях». 1С поменяла название модуля выгрузки в ЭДО.

Я нашел, исправил:

ИнтерфейсДокументовЭДОКлиент.ВыгрузитьДанныеВФайл(ОбъектыНазначенияМассив, ПараметрыВыполненияКоманды);

Но документ опять не выгружался, причем тот, который ранее выгружался. Я подумал, что документ опять не проходит валидацию и начал отладчиком искать, в чем причина.

Оказалось, что в реквизите документа «Вид электронного документа» сохраняется вид документа ЭДО:

А так как 1С в очередной раз поменяла типы документов, то этот тип уже не поддерживается.

Посмотрел логику выгрузки:

Доработал обработку выгрузки, чтобы она очищала этот реквизит перед выгрузкой в ЭДО:

ОчиститьВидЭлектронногоДокументаПоМассивуДокументов(ОбъектыНазначенияМассив);
ИнтерфейсДокументовЭДОКлиент.ВыгрузитьДанныеВФайл(ОбъектыНазначенияМассив, ПараметрыВыполненияКоманды);

&НаСервереБезКонтекста
Процедура ОчиститьВидЭлектронногоДокументаПоМассивуДокументов(ОбъектыНазначенияМассив)
    Для Каждого
Источник ИЗ ОбъектыНазначенияМассив Цикл
       
ОчиститьВидЭлектронногоДокумента(Источник);
    КонецЦикла;
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ОчиститьВидЭлектронногоДокумента(Источник)
   
УстановитьПривилегированныйРежим(истина);
   
ДО = Источник.ПолучитьОбъект();
   
ДО.ОбменДанными.Загрузка = истина;
   
ДО.ВидЭлектронногоДокумента = Неопределено;
   
ДО.Записать(РежимЗаписиДокумента.Запись);

   
УстановитьПривилегированныйРежим(ложь);

КонецПроцедуры

Всё заработало!

А тут пришел и ответ от Астрала:

Проверил файл на flk.keydisk.ru, формат оказался правильным:

И как мне оценивать этот ответ? Только так:

В общем, я написал в поддержку, что файл прошел проверку. Теперь жду от них ответа.

Как видите, ЭДО в 1С не через 1С:ЭДО — это то ещё извращение!

В общем, иногда мне кажется, что сходить на почту и отправить оригиналы в конверте намного проще!

Объем факт: 1 час. Среда: БП3 3.0.93.20.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

1 комментарий

  1. fajij28770:

    +1800, уже не плохо )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *