Карты, деньги, Диадок

26.03.24

Интеграция - ЭДО и ОФД

Интеграция с СКБ-Контур - Диадок, вылетает с ошибкой SDBL. Краткий разбор проблемы.

Проблема:

На одном из наших предприятий используется УТ Управление торговлей, редакция 11 (11.5.10.63).

Платформа - 1С:Предприятие 8.3 (8.3.23.1912)

В конфу загружена обработка интеграции СКБ-Контур - Диадок, которая с виду-то запускается, но при попытке передать документ на подпись, намекает на некоторую проблему.

 

 

Попытки обратиться в техподдержку СКБ-Контур привели к глумливому их ответу, насчет "Очистить серверный кэш", перезагрузить компьютер и вот все это.

Хотел бы я знать, понимает ли сама техподдержка СКБ-Контура, что такое "серверный кэш" или она просто радуется красивому слову.

Впрочем, ритуальные танцы с очисткой всякого рода кэшей, перезагрузкой сервера и прочее, были проделаны, но к успеху не привели.

Коллега даже с размаху установил новую и самую модную версию этой обработки.

Коронный совет любой техподдержки - выполнить ТиИ.

Разумеется, все это - тщета и суета сует.

 

Но делать-то что-то надо.

Делаем:

Развёртываем тестовую базу, на тестовом сервере, убеждаемся, что ошибка - на месте. Делаем вывод, что её появление не зависит от настройки сервера, регистрации базы в кластере, наличия пресловутого "серверного кэша" и всего вот этого, о чем нам сообщает техподдержка.

Разглядываем пациента.

Обработка, предоставленная нам поставщиком, представляет собой самодостаточную конструкцию, которая хранит в макетах свои запчасти, вытаскивая их при старте из этих макетов.

 

 

Поэтому, конечно, отладка затруднена.

Нельзя просто взять и поставить точку останова, с целью понять, что-же происходит внутри. Ну или там устроить "Остановку по ошибке"

Поэтому, настраиваем техножурнал, с целью поймать строку сбойного кода. Я совсем не мастер техножурнала, однако предположил, что мы ловим ексцепшены, обращения к SQL, а также SDBL, раз про него намекает исходное сообщение об ошибке.

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">

<dump location="C:\1c\SPK_dumps" create="1" type="0" externaldump="1"/>
<log location="C:\1c\SPK_logs" history="12">
<event>
<eq property="Name" value="EXCP"/>
<eq property="p:processName" value="ugmetall_trade_2022_dev2"/>
</event>
<event>
<eq property="Name" value="SDBL"/>
<eq property="p:processName" value="ugmetall_trade_2022_dev2"/>
</event>
<event>
<eq property="Name" value="DBMSSQL"/>
<eq property="p:processName" value="ugmetall_trade_2022_dev2"/>
</event>
<property name="all">
        
</property>
    
</log>
</config>

Провоцируем ошибку и где-то в глубинах этого страшного стека вызовов находим:

 

Наблюдаем, что в темных глубинах есть обработка ВнешняяОбработка.КонтурДиадокСтандартУФ

Внутри модуля которой, в строке 2222 имеется "Если Выборка.Следующий() Тогда", в котором сбой и происходит.

Выгружаем оную обработку из макета (а нам еще следует догадаться, в каком макете она притаилась), и видим вот такое:

Функция ЗагрузитьМаркерКонфигурации()
	
	Результат = Неопределено;
	
	КлючОбъекта = "МодульДиадок";
	КлючНастроек = "МаркерКонфигурации";
	
	СтруктураОтбора = Новый Структура;
	СтруктураОтбора.Вставить("КлючОбъекта"		, КлючОбъекта);
	СтруктураОтбора.Вставить("КлючНастроек"		, КлючНастроек);
	СтруктураОтбора.Вставить("ИмяПользователя"	, "");
	
	УстановитьПривилегированныйРежим(Истина);
	
	Выборка = ХранилищеОбщихНастроек.Выбрать(СтруктураОтбора);
	
	Если Выборка.Следующий() Тогда
		
		НайденноеЗначение = Выборка.Настройки;
		
		ЭлементДопустимогоМаркера = ДопустимыеМаркерыКонфигураций().НайтиПоЗначению(НайденноеЗначение);
		
		Если ЭлементДопустимогоМаркера <> Неопределено Тогда
			Результат = НайденноеЗначение;
		Иначе
			ХранилищеОбщихНастроек.Удалить(КлючОбъекта, КлючНастроек, ИмяПользователя());
		КонецЕсли;
		
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат Результат;
	
КонецФункции

Сразу посмотрим в синтакс-помощник и сообщим, что в отборе нужно задать ключ "Пользователь" а не "ИмяПользователя". Еще соображение, а также если мы отбираем по пустому имени пользователя то и удалять должны тоже по нему ?

Но черт с ним, пускай у СКБ-контура голова болит об их коде.

Нас волнует другое кино, сбой происходит на вызове метода Следующий() ХранилищаОбщихНастроек.

Еще интереснее, что ни до какого SDBL или тем более DBMSSQL, оно не доходит.

Что любопытно, если мы укажем просто Выбрать() без отбора, то код вполне себе работает.

Также оно работает, если в структуре отбора нет "КлючНастроек".

И вообще, сообщение насчет "CAST" наводит на мысль, что проблема с хранилищем общих настроек, но вся остальная конфа-то при этом исправно работает.

Что с этим делать?

Поиск по конфе по слову "ХранилищеОбщихНастроек.Выбрать(" показал, что такая конструкция в УТ 11.5 вообще не используется, а применяется Загрузить().

Точнее, найдено одно место и кого-то из коллег поджидает сюрприз

 

 

Варианты:

1. Вырезать вовсе обращение к ХранилищуОбщихНастроек, возвращать Неопределено, типа "я ничего не нашел", там выше по стеку вызовов предусмотрена обработка такого случая. Это мой выбор. Дешево. надежно, практично.

2. Залепить вот такое

Функция ЗагрузитьМаркерКонфигурации()
	
	Результат = Неопределено;
	
	КлючОбъекта = "МодульДиадок";
	КлючНастроек = "МаркерКонфигурации";
	
	СтруктураОтбора = Новый Структура;
	СтруктураОтбора.Вставить("КлючОбъекта"		, КлючОбъекта);
	СтруктураОтбора.Вставить("КлючНастроек"		, КлючНастроек);
	СтруктураОтбора.Вставить("ИмяПользователя"	, "");
	
	УстановитьПривилегированныйРежим(Истина);
	
	//Выборка = ХранилищеОбщихНастроек.Выбрать(СтруктураОтбора);	
	//Если Выборка.Следующий() Тогда		
	//	НайденноеЗначение = Выборка.Настройки;		
	//	ЭлементДопустимогоМаркера = ДопустимыеМаркерыКонфигураций().НайтиПоЗначению(НайденноеЗначение);		
	//	Если ЭлементДопустимогоМаркера <> Неопределено Тогда
	//		Результат = НайденноеЗначение;
	//	Иначе
	//		ХранилищеОбщихНастроек.Удалить(КлючОбъекта, КлючНастроек, ИмяПользователя());
	//	КонецЕсли;		
	//КонецЕсли;
	Настройки = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек,,"");
	Если Настройки <> Неопределено Тогда		
		НайденноеЗначение = Настройки;		
		ЭлементДопустимогоМаркера = ДопустимыеМаркерыКонфигураций().НайтиПоЗначению(НайденноеЗначение);		
		Если ЭлементДопустимогоМаркера <> Неопределено Тогда
			Результат = НайденноеЗначение;
		Иначе
			ХранилищеОбщихНастроек.Удалить(КлючОбъекта, КлючНастроек, "");
		КонецЕсли;		
	КонецЕсли;
	
	
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат Результат;
	
КонецФункции

Загружаем заколхоженную нами служебную обработку в макет, откуда выгружали.

Загружаем Контур-ЭДО в "Печатные формы отчеты и обработки"

Ура, работает что первый, что второй вариант.

 

Заключение:

Проблема побеждена, документы на подпись передаются, ура.

Но все же, господа, что это было?

Любое обращение к ХранилищуСтандартныхНастроек.Выбрать(Отбор), если в отборе присутствует ключ "КлючНастроек", приводит к ошибке и падению клиентского сеанса.

При этом, в ТЖ не пишется даже события SDBL.

Причем в случае, пустого отбора, код вполне работает и все события в ТЖ, как положено. пишутся.

Это очень похоже на ошибку платформы?

Меня не покидает ощущение неправильности, прошу советов, как надо было сделать правильно.

См. также

Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

В публикации размещены специализированные обработки для загрузки кассовых чеков в базах 1С (для локальных баз): '1С:Бухгалтерия предприятия, ред. 3.0', '1С:Управление нашей фирмой 8, ред. 3.0', '1С:Комплексная автоматизация, ред. 2.5', ‘1С:ERP Управление предприятием, ред. 2’ и ‘1С:Управление торговлей, ред. 11.5’. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах' и 'Поступление денежных документов'.

12960 руб.

19.08.2020    66056    307    73    

212

Загрузка данных из ОФД в 1С:Бухгалтерию 3.0, 1С:КА 2.4, 2.5, УНФ 1.6/3.0 о денежных поступлениях (чеках)

Кассовые операции ЭДО и ОФД Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Обработка загрузки данных из ОФД в 1С сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке). Проверено на: OFD.RU / Первый ОФД / Такском / Платформа ОФД / Ярус / ОФД Яндекс / ОФД Астрал /ОФД СБИС / Гарант ОФД / КОРУС ОФД / КОНТУР ОФД / ОФД АО Тандер / ИнитПро / Группа Элемент/

3600 руб.

09.08.2017    148916    873    372    

531

ЭДО: организация архива оригиналов первичных документов, комплексный отчет по ошибкам

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    44735    62    51    

75

Групповая выгрузка и загрузка файлов из 1С в XML для ЭДО в каталог по приказу №820 ФНС (для УТ 10.3/11, КА2, ERP2, БП3, УНФ, УПП1.3, Розница2.3). Поддержка маркировки. Прослеживание товаров.

ЭДО и ОФД Файловый обмен (TXT, XML, DBF), FTP Обмен с ГосИС Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Групповая выгрузка файлов из 1С в формате XML для ЭДО в каталог по приказу №820 ФНС для Контур.Диадок, СБИС и других провайдеров ЭДО. Поддержка УНФ 1.6, УНФ 3.0 Поддержка УТ 10.3, УПП 1.3 Поддержка Розница 2.3 Добавлена выгрузка непосредственно из документа

18000 руб.

15.12.2022    6869    108    26    

17

Государственные контракты в УТ 11.5, КА 2.5.11 с выгрузкой в ЕИС (Госзакупки)

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

40800 руб.

19.12.2022    10580    21    19    

17

Выгрузка УПД реализации из 1С в xml ФНС для загрузки в ЭДО: Диадок, СБИС, Такском, КОРУС, Астрал и прочие. Обработка на управляемых формах для БП 3.0, УНФ 1.6 / 3.0, УТ 11.4 / 11.5, КА 2, ERP 2 (Приказ ФНС №820 от 19.12.2018, 736 от 12.10.2020)

Оптовая торговля Производство готовой продукции (работ, услуг) Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Управляемые формы 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Выгрузка УПД, товарной накладной ТОРГ-12, акта, счета-фактуры по реализации (в БП сч-ф на аванс) в xml-файл в формате ФНС приказ 820 от 19.12.2018. Выгрузка УКД и корректировочного счета-фактуры в xml-файл в формате ФНС приказ 736 от 12.10.2020. Выгрузка товарной накладной в xml-файл ФНС приказ 551 от 13.11.2015, редакция 08.04.2019. Выгрузка акта приемки-сдачи работ (услуг) в xml-файл ФНС приказ 552 от 13.11.2015, редакция 08.04.2019. Добавлена выгрузка счетов на оплату по документам ЗаказПокупателя (в УНФ), ЗаказКлинета (в УТ / КА / ERP), СчетНаОплатуПокупателю (в БП). Добавлена обработка Выгрузка УПД c документов реализации 1С в Контур.Диадок по API.

15600 руб.

13.04.2018    82874    393    9    

428

Загрузка документов поступления из XML формата 820 (Контур.Диадок) в 1С:УТ10/11, БП 3.0, КА2.5, УПП1.3 и обработка выгрузки УПД в Контур Диадок и СБИС для 1С:Бухгалтерии 3.0

ЭДО и ОФД Загрузка и выгрузка в Excel Бухгалтер Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Кто получает документы через Контур.ДиаДок (XML файл формат 820) и набивает их вручную в 1С, тот наверняка хотел бы автоматизировать этот процесс. Поддержка конфигураций: Бухгалтерии 3, УПП 1.3, 1С:КА 2.4 и 1С:КА 2.5, УТ10, УТ11.4 и УТ11.5. Выгрузка XML в формате 820 для диадок из БУХ3

3600 руб.

11.02.2020    89603    285    156    

208
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3123 27.03.24 00:00 Сейчас в теме
Интересный материал.
Демонстрация полной некомпетентности ТП СКБ-Контур
2. zakharov_yuri 34 27.03.24 07:22 Сейчас в теме
(1) Ну я бы не сказал так, что "полной". Здесь проблема какбэээ..... обработка поставщика работает ведь на других конфигурациях. На БП Корп, например. Спотыкачка именно на моей конфе УТ.
И здесь еще вопрос - все-таки это может у меня конфа УТ - побитая ? Или это теперь особенность платформы? Или особенность УТ ?
Собственно - "Что произошло?" - это и есть вопрос статьи.
3. mussolene 20 29.03.24 09:28 Сейчас в теме
Доброго дня. Есть ошибка зарегистрированная на багборде 1С 000147977
Которая исправлена в платформе 8.3.23.2040.
itmind; zakharov_yuri; +2 Ответить
4. mussolene 20 29.03.24 09:33 Сейчас в теме
Поэтому, конечно, отладка затруднена.

Нельзя просто взять и поставить точку останова, с целью понять, что-же происходит внутри. Ну или там устроить "Остановку по ошибке"


У обработки есть галочка в системных настройках. Режим отладки.
При включении и размещении обработки на общем ресурсе (доступ у клиента и у сервера). Все обработки выгружаются в указанный каталог и отладку можно провести без примочек с ТЖ.
harmless; +1 Ответить
Оставьте свое сообщение