Диадок. Подключаемый модуль. Отладка

17.06.20

Интеграция - WEB-интеграция

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

В обработке Диадок переходим в настройки. Нажимаем на кнопку "сохранить шаблон подключаемого модуля на диск" (лучше заранее сохранить пустую обработку и ее выбрать). Путь к файлу  я делаю через сетевую папку.

 

 

Получаем обработку шаблон. 

 

 

Переходим в модуль обработки. Нас интересует функция ОбработкаСобытияПодключаегогоМодуля()

А в ней нужно разкомментировать событие ПослеОбновленияКонтента

 

 

тип контента Utd820SellerContent это УПД. В УПД как правило я больше всего вношу изменеий перед отправкой.

 

 

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

Поэтому допилим костыль сохраним в текстовый файл Структуру Параметры.Content

 

 

 

 

ТекстПротоконтент = ЗначениеВСтрокуВнутр(Протоконтент);
Текст = Новый ЗаписьТекста;
Текст.Открыть("\\Server\1c\Протоконтент.txt",КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку(ТекстПротоконтент);
Текст.Закрыть();

 

А потом в другой обработке в отладчике уже посмотрим содержимое этой структуры. В этой структуре и нужно менять данные. Чтобы УПД на сайт Диадока выгрузилась в измененном виде.

 

 

&НаСервере
Процедура Команда1НаСервере()
	
	Текст = Новый ТекстовыйДокумент;
	
	ПолноеИмяФайла = "\\server\1с\Протоконтент.txt";
	Текст.Прочитать(ПолноеИмяФайла);
	
	ТекСтрока1 = "";
	КоличествоСтрок = Текст.КоличествоСтрок();
	Для Счетчик = 1 по КоличествоСтрок Цикл
		ТекСтрока = Текст.ПолучитьСтроку(Счетчик);
		ТекСтрока1 = ТекСтрока1 + ТекСтрока;
	КонецЦикла;   
	Протоконтент = ЗначениеИзСтрокиВнутр(ТекСтрока1);
	
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры

 

 
 Полный текст модуля обработки. Шаблон подключаемого модуля

 

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.9.98)

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

Диадок. Подключаемый модуль Отладка

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15661    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17429    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25688    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16260    41    49    

22
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. login1020 133 22.06.20 12:38 Сейчас в теме
Их обработка неудобна для отладки (пользуемся PRO версией, а все доп объекты интегрированы в базу), т.к. постоянно вызывается разные методы из макетов, каждый из которых представляет собой внешнюю обработку. Да и вклиниваться на уровне сбора данных мне тоже не хотелось, уж больно длинную цепочку потом прослеживать.

Тогда я просто вклинился в эту процедуру в модуле объекта обработки:
ЭДО_ДокументМенеджер_ПодготовитьИДобавитьДокументВПакет
и уже там напрямую добавлю/заполняю те поля, которых мне не хватает для отправки УПД.
А выклинился в нее т.к. это уже конечный результат сборки документа непосредственно перед самой отправкой.
RustIG; shard; wowik; +3 Ответить
19. unknown181538 151 11.07.22 13:41 Сейчас в теме
(1) вот сейчас задался вопросом, как интегрировать обработки из макетов в базу.... В старой версии хотя бы основной модуль в базе был, а теперь еще обертку поверх сделали в универсальном...
А встроенность в базу - это свойство PRO версии? Или вы переделали как-то?
ЭДО_ДокументМенеджер_ПодготовитьИДобавитьДокументВПакет - это тоже не на все случаи жизни. Например, мне нужно обращаться к строке по идентификатору...
2. Максим-777 55 20.10.20 13:00 Сейчас в теме
Кстати, если поставить в настройках обработки флаг откладки (Шестеренка - Настройки - Сервисные функции - Режим отладки), то обработка перед получением модулей из макетов будет искать их в директории libs, рядом с файлом обработки диадок про. В эту папку нужно будет посохранять модули из макетов в одноименные файлы. После этого можно будет проваливаться в эти модули в режиме отладки.
RustIG; COMPER; +2 Ответить
3. John_d 5204 20.10.20 14:44 Сейчас в теме
(2) Может напишете статью об этом? скиньте потом ссылку сюда
4. Максим-777 55 20.10.20 15:51 Сейчас в теме
Конечно, на днях набросаю инструкцию в картинках. Сейчас как раз интегрируемся, сам долго не мог понять как они там у себя отлаживают, пока не наткнулся в модулях на эту особенность))
(3)
7. Максим-777 55 30.10.20 15:54 Сейчас в теме
8. John_d 5204 30.10.20 16:21 Сейчас в теме
(7) я первый звездочку поставил)
17. mulder242 3 27.09.21 09:21 Сейчас в теме
При каком действии срабатывает данный подключаемый модуль, при отправке? Если не сложно, напишите, пожалуйста, наименование ключей структуры отвечающих за строку 5а
5. ovasiliev 6 30.10.20 14:55 Сейчас в теме
Как-то дошёл в их модуле до момента, где они подтягивают свои xml-схемы, и бросил это дело, так как не было уверенности, что на своём сервере они не принимают файлы по своим же форматам, и что изменённый xml пройдёт.
Нет с этим проблем?
6. John_d 5204 30.10.20 15:15 Сейчас в теме
(5) Смело можете менять данные в структуре(последний скриншот). Постоянно так делаю.
9. Gh0st 16.02.21 14:04 Сейчас в теме
У кого-то работают в версии Про события из ТиповойМодульДиадокУФ в подключаемом модуле? Посмотрел в отладчике подключаемый модуль отключен , кэш не доступен в контексте этой обработки.
10. Gh0st 16.02.21 15:40 Сейчас в теме
(9) Разобрался и решил проблемы с дополнением данных контента в событии ПодготовитьЭлектронныйДокумент. Оно вызывается дважды до стандартного заполнения и после него. Параметры.Свойство("Результат_ИМ") указывает, что результат заполнен. Но вызов событий из ТиповойМодульДиадокУФ и вложенных модулей хотелось бы реализовать. Надо переопределить текст запроса данных из РТУ. Пока решил изменением встроенного модуля, но в Диадок стандарт это решал добавлением вызова ПМ и из него передавал текст запроса.
11. yudinvs 2 21.06.21 12:55 Сейчас в теме
Коллеги, кто может подсказать в каком виде модулю нужно передавать коды маркировки для УКД? Нужен пример подготовки массива с кодами. По УПД все хорошо, но с УКД не понятно. Или если это где то описано то где?
12. VanoZZZ 15.07.21 07:42 Сейчас в теме
(11) Получилось указать коды маркировки в УКД?
Там есть поля
OriginalItemIdentificationNumbers
CorrectedItemIdentificationNumbers
Заполняю по аналогии с УПД, но маркировка все равно не уходит
13. VanoZZZ 15.07.21 10:52 Сейчас в теме
(11) вот так у меня заработало
ВыборкаПоНоменклатуре=ОбщаяВыборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			Пока ВыборкаПоНоменклатуре.Следующий() Цикл
				НайденноеЗначение=Контент.InvoiceCorrectionTable.Items.Найти(ВыборкаПоНоменклатуре.Номенклатура);	
				Если НайденноеЗначение<>Неопределено Тогда
					Выборка=ВыборкаПоНоменклатуре.Выбрать();
					СтруктураСтрокиМаркировкиДо = Новый Структура;
					СтруктураСтрокиМаркировкиДо.Вставить("TransPackageId");
					СтруктураСтрокиМаркировкиДо.Вставить("Units"		, Новый Массив);
					СтруктураСтрокиМаркировкиДо.Вставить("PackageIds"	, Новый Массив);
					СтруктураСтрокиМаркировкиПосле = Новый Структура;
					СтруктураСтрокиМаркировкиПосле.Вставить("TransPackageId");
					СтруктураСтрокиМаркировкиПосле.Вставить("Units"		, Новый Массив);
					СтруктураСтрокиМаркировкиПосле.Вставить("PackageIds"	, Новый Массив);
					Пока Выборка.Следующий() Цикл
						Если ЗначениеЗаполнено(Выборка.КодРеализации) Тогда
							СтруктураСтрокиМаркировкиДо.Units.Добавить(Выборка.КодРеализации);
						КонецЕсли;
						Если ЗначениеЗаполнено(Выборка.КодКорректировки) И НЕ ЗначениеЗаполнено(Выборка.КодРеализации) Тогда
							СтруктураСтрокиМаркировкиПосле.Units.Добавить(Выборка.КодКорректировки);
						КонецЕсли;
					КонецЦикла;
					МассивКодовМаркировкиДо=Новый Массив;
					МассивКодовМаркировкиДо.Добавить(СтруктураСтрокиМаркировкиДо);
					МассивКодовМаркировкиПосле=Новый Массив;
					МассивКодовМаркировкиПосле.Добавить(СтруктураСтрокиМаркировкиПосле);
					НайденноеЗначение.OriginalItemIdentificationNumbers=МассивКодовМаркировкиДо;
					НайденноеЗначение.CorrectedItemIdentificationNumbers=МассивКодовМаркировкиПосл­е;
				КонецЕсли;	
			КонецЦикла;
Показать
kotofeyru; +1 Ответить
14. yudinvs 2 15.07.21 11:29 Сейчас в теме
(13) Спасибо. Пока еще не получилось, буду пробовать. Недавно контур выложил документацию
https://1c-pro-docs.diadoc.ru/ru/latest/UTD736.html
15. LediStile 2 30.07.21 17:33 Сейчас в теме
Подключаю обработку ДиадокПРО 4.5.29 для конфигурации "ДАЛИОНТренд"

Отладка включается в режиме предприятия при нажатии на галочку ОТЛАДКА. Обработки выгружаются в каталог (лучше на сервере) "\\ИмяКаталогаОсновногоМодуля\libs". Сюда выгружаются обработки из макетов ____ВложенныеФайлы____ . Здесь вроде всё понятно. Но стоит задача, а как отладить обработку Модуль_ИнтеграцияУниверсальный, которая хранится в одном из макетов ТиповойМодульДиадокУФ(Модуль_ДиадокУФ). Сейчас я это сделал и попробую описать. Мне это нужно было для конфигурации "ДАЛИОНТренд".

// Может напишу что-то лишнего или не допишу что-то важного, не судите строго

1. В подключаемом модуле верну мою конфу
Функция ИмяКонфигурации1С()	
	//Возврат "БП20";
	Возврат "ДАЛИОНТренд" //Новая конфигураци Далион Тренд 3.0	
КонецФункции


2. В обработке Модуль_ДиадокУФ необходимо определить мою конфигурацию "ДАЛИОНТренд":

Функция МаркерКонфигурации()
	
	ИменаПодсистемПоМаркерам = Новый Соответствие;
	ИменаПодсистемПоМаркерам.Вставить("БП30", ИменаПодсистемБП());
	ИменаПодсистемПоМаркерам.Вставить("УТ11", ИменаПодсистемУТ());
	ИменаПодсистемПоМаркерам.Вставить("УНФ16", ИменаПодсистемУНФ());
	ИменаПодсистемПоМаркерам.Вставить("БГУ20", ИменаПодсистемБГУ());
	ИменаПодсистемПоМаркерам.Вставить("Розница", ИменаПодсистемРозница());
	ИменаПодсистемПоМаркерам.Вставить("АльфаАвто6", ИменаПодсистемАльфаАвто());
	ИменаПодсистемПоМаркерам.Вставить("ДАЛИОНТренд", ИменаПодсистемДалионТренд());
	
	ПодсистемыКонфигурации = ОписанияПодсистемКонфигурации();
	
	Результат = "";
	
	Для Каждого КлючИЗначение Из ИменаПодсистемПоМаркерам Цикл
		
		ПодходящиеПодсистемы = КлючИЗначение.Значение;
		
		Если ЕстьПодходящаяПодсистема(ПодсистемыКонфигурации, ПодходящиеПодсистемы) Тогда
			Результат = КлючИЗначение.Ключ;
			Прервать;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции
Показать


Функция ИменаПодсистемДалионТренд()
	
	Результат = Новый Массив;
	Результат.Добавить("ДАЛИОНТренд");	
	Возврат Результат;
	
КонецФункции

Показать


	Функция ИмяФормыИнтеграции() Экспорт
		
		Если ПараметрыКлиентСервер.МаркерКонфигурации = "БП30" Тогда
			Результат = "Модуль_ИнтеграцияБП30";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "УТ11" Тогда
			Результат = "Модуль_ИнтеграцияУТ11";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "БГУ20" Тогда
			Результат = "Модуль_ИнтеграцияБГУ20";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "УНФ16" Тогда
			Результат = "Модуль_ИнтеграцияУНФ16";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "Розница" Тогда
			Результат = "Модуль_ИнтеграцияРозница";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "АльфаАвто6" Тогда
			Результат = "Модуль_ИнтеграцияАльфаАвто6";
		ИначеЕсли ПараметрыКлиентСервер.МаркерКонфигурации = "ДАЛИОНТренд" Тогда
			Результат = "Модуль_ИнтеграцияУниверсальный"; // рома 
		Иначе
			Результат = Неопределено;
		КонецЕсли;
		
		Возврат Результат;
		
	Конецфункции 
Показать


Вроде после таких махинаций правильно определяется конфигурация и это хорошо. Проверим:
[img]C:\fakepath\метеданные далион.PNG[/img]


3. Необходимо указать КаталогМодулейСервера, по сути каталог где хранится основная обработка diadocPro. Для отладки напишите РежимОтладкиСервера = ИСТИНА

Функция ПараметрыИнициализацииМодуля()
	
	Результат = Новый Структура;
	Результат.Вставить("ВызовИзРасширения", Ложь);
	Результат.Вставить("РежимОтладкиСервера", Истина);  // признак отладки
	Результат.Вставить("КаталогМодулейСервера", "\\ИмяКаталогаОсновногоМодуля\");  // путь моей обработки: "\\МойСервер\ИмяКаталогаОсновногоМодуля\Diadoc4_5.epr"
	Результат.Вставить("ОтправкаФайловСтарыйИнтерфейс", Ложь);
	Результат.Вставить("ИспользоватьФормуВводаНакладной", Ложь);
	Результат.Вставить("МаркерКонфигурации", ПолучитьМаркерКонфигурации());
	
	Возврат Результат;
	
КонецФункции

Показать


4. Здесь я определяю как должна действовать моя обработка "Модуль_ИнтеграцияУниверсальный"

	Функция МетодСервера(Знач ИмяМодуля= "", ИмяМетода,
			Параметр0= NULL, Параметр1= NULL, Параметр2= NULL, Параметр3= NULL, Параметр4= NULL, 
			Параметр5= NULL, Параметр6= NULL, Параметр7= NULL, Параметр8= NULL, Параметр9= NULL) Экспорт
		
		Если НЕ ЗначениеЗаполнено(ИмяМодуля) Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;
			
		ИначеЕсли ИмяМодуля = "Модуль_Интеграция" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяФормыИнтеграции;
			
		ИначеЕсли ИмяМодуля = "Модуль_ИнтеграцияУниверсальный" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;			
			
		КонецЕсли;
		
		Результат = ВыполнитьМетод(ИмяМодуля, ИмяМетода
		, Параметр0, Параметр1, Параметр2, Параметр3, Параметр4 
		, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9
		);
		
		Возврат Результат;
		
	КонецФункции

	Процедура ПовторноеИспользованиеСброситьЗначение(Знач ИмяМодуля= "", ИмяМетода,
		Параметр0= NULL, Параметр1= NULL, Параметр2= NULL, Параметр3= NULL, Параметр4= NULL, 
		Параметр5= NULL, Параметр6= NULL, Параметр7= NULL, Параметр8= NULL, Параметр9= NULL) Экспорт
		
		Если НЕ ЗначениеЗаполнено(ИмяМодуля) Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки;
			
		ИначеЕсли ИмяМодуля = "Модуль_Интеграция" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяФормыИнтеграции;
			
		ИначеЕсли ИмяМодуля = "Модуль_ИнтеграцияУниверсальный" Тогда
			
			ИмяМодуля = ПараметрыКлиентСервер.ИмяОбработки; // Рома
			
		КонецЕсли;
		
		МассивПараметров= МассивПараметров(
		Параметр0, Параметр1, Параметр2, Параметр3, Параметр4, 
		Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
		
		УдалитьРезультатФункцииИзКэш(ИмяМодуля, ИмяМетода, МассивПараметров);
		
	КонецПроцедуры

Функция ИмяМенеджераИнтеграции()
	Возврат "Модуль_ИнтеграцияУниверсальный";
КонецФункции


Функция МенеджерИнтеграции_НоваяНоменклатураИнформационнойБазы(Номенклатура = Неопределено, Характеристика = Неопределено, Упаковка = Неопределено)
	
	Результат = МетодСервера("Модуль_ИнтеграцияУниверсальный", "НоваяНоменклатураИнформационнойБазы"
		, Номенклатура
		, Характеристика
		, Упаковка);
	
	Возврат Результат;
	
КонецФункции

Процедура МенеджерИнтеграции_НайтиНоменклатуруИнформационнойБазы(НоменклатураИБ, НоменклатураКонтрагента)
	
	МетодСервера("Модуль_ИнтеграцияУниверсальный", "НайтиНоменклатуруИнформационнойБазы"
		, НоменклатураИБ
		, НоменклатураКонтрагента);
	
КонецПроцедуры

	Функция КаталогиВложенныхОбработокВРежимеОтладки()
		
		КаталогБиблиотек = "libs";
		КаталогИнтеграции = "include";
		
		Результат = Новый Соответствие;
		
		Результат.Вставить("Модуль_РаботаСВнешнимиПечатнымиФормами"	, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУниверсальный"			, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияБП30"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУТ11"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияБГУ20"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияУНФ16"					, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияРозница"				, КаталогИнтеграции);
		Результат.Вставить("Модуль_ИнтеграцияАльфаАвто6"			, КаталогИнтеграции);
		
		Результат.Вставить("ГенерацияXML"	, КаталогБиблиотек);
		Результат.Вставить("ПечатныеФормы"	, КаталогБиблиотек);
		
		Возврат Результат;
		
	КонецФункции

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

	Функция ОбъектКонстант() Экспорт
		
		Результат = МетодСервера("Модуль_ИнтеграцияУниверсальный", "ВладелецОбщихНастроекМодуля");
		
		Возврат Результат;
		
	КонецФункции


Показать


5. И самое основное, в каком месте я переопределяю ВнешняяОбработкаМодуль_ИнтеграцияУниверсальный.ИспользуемоеИмяФайла. Это здесь:

		Если ПараметрыКлиентСервер.РежимОтладкиСервера Тогда
			
			ПодКаталогиОбработок = КаталогиВложенныхОбработокВРежимеОтладки();
			
			ИмяФайла		 = ИмяМодуля + ".epf";
			ПодКаталог		 = ПодКаталогиОбработок[ИмяМодуля];
			КаталогОбработок = ПараметрыКлиентСервер.КаталогМодулейСервера; // рома , у меня все хранилось в "\\МойСервер\Диадок Про\"
			ПолноеИмяФайла	 = ОбъединитьПути(КаталогОбработок, ПодКаталог, ИмяФайла);
			
			Если Не ФайлСуществует(ПолноеИмяФайла) Тогда
				ЗаписатьМакетОбработкиВФайл(ИмяМодуля, ПолноеИмяФайла);
			КонецЕсли;
			
			Результат = ВнешниеОбработки_СоздатьИзФайла(ПолноеИмяФайла, Истина); //  ИСТИНА - зто признак для отладки моей обработки, не нужна отладка - оставьте ЛОЖЬ. Этот признак меняет ИспользуемоеИмяФайла у обработки
			
		Иначе
			
			ПроверитьЧтоБезопасныйРежимОтключен();
			
			ДвоичныеДанные = ПолучитьМакет(ИмяМодуля);
			АдресОбработки = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
			
			ИмяОбработки = ВнешниеОбработки_Подключить(АдресОбработки);
			Результат	 = ВнешниеОбработки_СоздатьПоИмени(ИмяОбработки);
			
		КонецЕсли;
		
		Если ПараметрыКлиентСервер.РежимОтладкиСервера Тогда
			Результат.ПриглашениеОтладки();
		КонецЕсли;
		
		Возврат Результат;
		
	КонецФункции

Показать


Здесь создается обработка в каталоге:

	Функция ВнешниеОбработки_СоздатьИзФайла(ИмяФайла, БезопасныйРежим = Ложь)
		
		ПроверитьЧтоФайлСуществует(ИмяФайла);
		
		Результат = ВнешниеОбработки.Создать(ИмяФайла, БезопасныйРежим);
		
		Возврат Результат;
		
	КонецФункции
	
	Процедура ПроверитьЧтоФайлСуществует(ИмяФайла)
		
		Файл = Новый Файл(ИмяФайла);
		
		Если НЕ Файл.Существует() Тогда
			
			Если ПараметрыКлиентСервер.ФайловыйРежимРаботы Тогда
				СтрокаПроверьтеФайлНаСервере = "";
			Иначе
				СтрокаПроверьтеФайлНаСервере = НСтр("ru = '
				|Проверьте, что файл доступен для загрузки на сервере 1С.'");
			КонецЕсли;
			
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Файл не обнаружен ''%1'' %2'"), ИмяФайла, СтрокаПроверьтеФайлНаСервере);
			
			ВызватьИсключение ТекстОшибки;
			
		КонецЕсли;
		
	КонецПроцедуры

Показать


Результат.ИспользуемоеИмяФайла = "\\МойСервер\Диадок Про\include\Модуль_ИнтеграцияУниверсальный.epf" - это то, что мне нужно для отладки

Все обработки хранятся в переменных Кэш и ОбщийКэш в модулях

Пожалуй, прикреплю я свою обработку сюда
ПМ_ТорговыеСети - мой подключаемый модуль
ТиповойМодульДиадокУФ.epf - хранится в \\....\ТиповойМодульДиадокУФ.epf и скачивается в каталог при нажатии режима ОТЛАДКИ в основной обработке
Прикрепленные файлы:
ПМ_ТорговыеСети_4.2.3.10_24_06_2021.epf
ТиповойМодульДиадокУФ.epf
16. LediStile 2 03.08.21 14:33 Сейчас в теме
18. mdv92 03.06.22 18:21 Сейчас в теме
Скажите, пожалуйста, сейчас это еще работает? Там же новая версия?
21. John_d 5204 14.09.22 15:36 Сейчас в теме
(18) Это работает и в новой версии
20. Клетчатый 25.08.22 16:31 Сейчас в теме
Кто нибудь знает, как в новом модуле КонтурЭДО получить, то что раньше называлось протоконтент?
22. John_d 5204 14.09.22 15:39 Сейчас в теме
(20)
Для Каждого Стр Из Параметры.Пакет.Документы Цикл
     СсылкаНаДокумент = Стр.Документ1С;
     Протоконтент	 = Стр.Content;
     ТипКонтента		 = Стр.ТипКонтента;
VyacheslavShilov; Клетчатый; veda38; +3 Ответить
23. veda38 16.09.22 00:24 Сейчас в теме
(22) Спасибо! Очень помогло.
24. Eos 23.09.22 14:29 Сейчас в теме
Добрый день! Есть вопрос по новому универсальному модулю Диадок. Как в подключаемом модуле обращаться к списку документов?
Не получается вызвать функцию "СписокДокументов_Документы" модуля "Ядро". Искал примеры, нигде не нашел подобного
25. Eos 23.09.22 14:32 Сейчас в теме
Еще не могу понять, почему событие "ПослеУстановкиСтатусаДокумента" в подключаемом модуле обрабатывает не все статусы. Тестировал под тестовой ЭЦП. При аннулировании проваливается в функцию, при подписании почему-то нет
26. fortran 18.10.22 08:58 Сейчас в теме
Добрый день, коллеги. Может ли кто-нибудь пояснить, каким образом вызываются функции из подключаемого модуля? Моя задача предельно проста! При загрузке документа поступления в базу 1С он должен проводится. По умолчанию он только записывает. Из документации на сайте Диадок я вычитал про функцию подключаемого модуля "ВыполнитьТребуемоеДействие", в которой уже даже в качестве примера прописано проведение загруженного документа. Но проблема в том, как вызвать эту функцию? Некоторые события подключаемого модуля вызываются, но далеко не все. Опять же в документации написано про какой-то анализ и что якобы после него вызывается "ВыполнитьТребуемоеДействие", но события анализа тоже не отрабатывает и кнопок похожих на "Анализ" я в интерфейсе обработки не нашел. Очень не хочется делать в лоб и менять код в ядре на проведение вместо записи.
27. kai068 5 05.12.22 12:29 Сейчас в теме
(26) там есть обработка события
ИначеЕсли ИмяСобытия = "ПолучитьЗаполненныйОбъектДокумента1С" Тогда

Возврат ПолучитьЗаполненныйОбъектДокумента1С(Параметры);


Функция ПолучитьЗаполненныйОбъектДокумента1С(Параметры)

Ошибки = Новый Массив;

ПроверитьФункциюДокумента(Параметры, Ошибки);
ПроверитьЗаполнитьИдентификаторОперации(Параметры, Ошибки);
ДополнительныеПараметры = Параметры.ДополнительныеПараметры;

Если ЗначениеЗаполнено(Ошибки) Тогда
Результат = РезультатФункцииОшибка(Ошибки);
Возврат Результат;
КонецЕсли;

Документ = Параметры.Документ;
ИдентификаторОперации = Параметры.ИдентификаторОперации;
ДополнительныеПараметры = Параметры.ДополнительныеПараметры;

Результат = ОсновнойМодуль.НовыйРезультатФункции();

Если Параметры.ИдентификаторОперации = "ПриходныйОрдерНаТовары" тогда

ПараметрыЗаполнения = НовыйПараметрыЗаполненияПТУ();
ЗаполнитьЗначенияСвойств(ПараметрыЗаполнения, ДополнительныеПараметры);
СоздатьДокументы(Документ, Результат, ПараметрыЗаполнения);

Иначе
Возврат Неопределено;
КонецЕсли;

Возврат Результат;

КонецФункции

в Процедуре СоздатьДокумент вы создаете Документ поступления и С/фактуру, где его и проводите.
28. Клетчатый 15.02.24 15:41 Сейчас в теме
Здравствуйте, кто нибудь знает как редактировать старый подключаемый модуль в новой версии КонтурЭДО?

Всё, сам нашёл, в дополнительных обработках висит Диадок (СКБ Контур): Подключаемый модуль - это подключенный старый, выгружаем, правим, загружаем обратно.
Оставьте свое сообщение