Пример обработки загрузки данных из XML-файла в облаке 1С:Fresh

04.02.16

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Внешняя обработка, адаптированная для работы в УНФ, размещенной в облаке 1С:Fresh (легко редактируется под любую другую конфигурацию)
В обработке использованы следующие механизмы (их варианты при работе в безопасном режиме):
1. Механизм выполнения сценариев дополнительных обработок.
2. Механизм отложенной записи объектов.
3. Механизм клиент-серверной передачи файлов.
4. Механизм чтения XML в безопасном режиме.
5. Механизм создания и поиска элементов с помощью UID.

Скачать файлы

Наименование Файл Версия Размер
Обработка загрузки XML в 1С:Fresh (1.0.1)
.epf 15,29Kb
20
.epf 1.0.1 15,29Kb 20 Скачать
Обработка загрузки XML в 1С:Fresh (1.0.2)
.epf 15,27Kb
50
.epf 1.0.2 15,27Kb 50 Скачать

Обработка загрузки прайс-листа поставщика из файла XML в конфигурацию 1С:Управление Небольшой Фирмой. Работает в файловом, клиент-серверном варианте, а также в безопасном режиме исполнения дополнительных обработок технологии 1С:Fresh.

Обработка разрабатывалась под конкретного клиента, здесь выкладывается с целью поделиться принципами работы с файлами, объектами при исполнении кода в базах 1С:Fresh.

1.    Особого внимания стоит механизм выполнения сценариев дополнительных обработок.

Суть данного механизма в том, что вся обработка представляет собой набор этапов исполнения. Каждый этап - вызов процедуры либо функции как внешней обработки, так и объектов конфигурации. При этом, передача параметров в функцию происходит не в явном виде, а с помощью своеобразного API, который представляется некоторыми общими модулями. Отличить общие модули можно по их наименованию вида "ДополнительныеОтчетыИОбработкиВБезопасномРежиме*".

Пример сценария исполнения:

        Конструктор = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс;
	
	Сценарий = Конструктор.НовыйСценарий();
	
	Этап = Конструктор.ДобавитьМетодКонфигурации(Сценарий,
			"ДополнительныеОтчетыИОбработкиВБезопасномРежиме.ЧтениеXMLИзДвоичныхДанных", // Имя метода
			"ЧтениеXML" // Сохранение результата в переменную
		);
	Конструктор.ДобавитьЗначение(Этап, АдресФайлаДанных);
	
	Если ОтлаживатьКакВстроенную Тогда
		ИмяОбработки = Метаданные().Имя;
		Если Метаданные.НайтиПоПолномуИмени("Обработка." + ИмяОбработки) = Неопределено Тогда
			
			ТекстСообщенияОбОшибке = 
			НСтр("ru = 'Эта обработка предназначена для использования только в подсистеме ""Дополнительные отчеты и обработки"".
                  |Запускать ее на выполнение как внешюю обработку через главное меню (Файл - Открыть) нельзя.
                  |Для проверки работы необходимо:
                  |1. Добавить эту обработку в справочник ДополнительныеОтчетыИОбработки
                  |2. Запустить ее через командный интерфейс соответствующей подсистемы.
                  |Для отладки необходимо:
                  |1. Включить эту обработку в состав конфигурации
                  |2. Отладить обработку, запуская через меню ""Все функции""
                  |3. Сохранить обработку как внешнюю
                  |4. Удалить отлаженную обработку из состава конфигурации
                  |5. Использовать отлаженную внешнюю обработку в подсистеме ""Дополнительные отчеты и обработки"".'");
			ВызватьИсключение ТекстСообщенияОбОшибке;
			
		КонецЕсли;
		Этап = Конструктор.ДобавитьМетодКонфигурации(Сценарий,
				"Обработки." + ИмяОбработки + ".Создать().ЗагрузитьДанныеИзXMLФайла", // Имя метода
				"ДокументДОМ"
		);
	Иначе
		Этап = Конструктор.ДобавитьМетодОбработки(Сценарий,
				"ЗагрузитьДанныеИзXMLФайла", // Имя метода
				"ДокументДОМ"
				);
	КонецЕсли;
	
	Конструктор.ДобавитьСохраняемоеЗначение(Этап, "ЧтениеXML");
	
	Конструктор.ДобавитьЗначение(Этап, ВидЦены);
		
	Конструктор.ДобавитьПараметрВыполненияКоманды(Этап, "РезультатВыполнения");
	
	Если ОтлаживатьКакВстроенную Тогда
		ИмяОбработки = Метаданные().Имя;
		Если Метаданные.НайтиПоПолномуИмени("Обработка." + ИмяОбработки) = Неопределено Тогда
			
			ТекстСообщенияОбОшибке = 
			НСтр("ru = 'Эта обработка предназначена для использования только в подсистеме ""Дополнительные отчеты и обработки"".
                  |Запускать ее на выполнение как внешюю обработку через главное меню (Файл - Открыть) нельзя.
                  |Подробнее в справочной информации.'");
			ВызватьИсключение ТекстСообщенияОбОшибке;
			
		КонецЕсли;
		Этап = Конструктор.ДобавитьМетодКонфигурации(Сценарий,
				"Обработки." + ИмяОбработки + ".Создать().ЗагрузитьГруппы", // Имя метода
				"МассивГрупп"); // Сохранение результата
	Иначе
		Этап = Конструктор.ДобавитьМетодОбработки(Сценарий,
				"ЗагрузитьГруппы", // Имя метода
				"МассивГрупп"); // Сохранение результата
	КонецЕсли;
	Конструктор.ДобавитьСохраняемоеЗначение(Этап, "ДокументДОМ");
    	
	Этап = Конструктор.ДобавитьМетодКонфигурации(Сценарий, "ДополнительныеОтчетыИОбработкиВБезопасномРежиме.ЗаписатьОбъекты");
	Конструктор.ДобавитьКлючСессии(Этап);
	Конструктор.ДобавитьСохраняемоеЗначение(Этап, "МассивГрупп");
	Конструктор.ДобавитьЗначение(Этап, Неопределено);

Обращу внимание на вызовы 

Конструктор.ДобавитьСохраняемоеЗначение(Этап, "МассивГрупп");
Конструктор.ДобавитьЗначение(Этап, Неопределено);

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

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

После формирования сценария с помощью вызова процедуры

ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера.ВыполнитьСценарийВБезопасномРежиме(
		КлючСессии,
		АдресСценария,
		Результат
	);

сценарий начинает исполняться.

Данный метод рекомендуем специалистами 1С для написания внешних обработок. 

 

2.    С недавнего времени в облаке нельзя напрямую записать объект(будь то документ, справочник или набор записей) с помощью метода Записать().

Вместо этого необходимо добавить этап с вызовом процедуры

ДополнительныеОтчетыИОбработкиВБезопасномРежиме.ЗаписатьОбъекты

 В качестве параметра (через вызов метода ДобавитьСохраняемоеЗначение) туда передается массив объектов для записи.

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

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

ДополнительныеОтчетыИОбработкиВБезопасномРежиме.ЧтениеXMLИзДвоичныхДанных

5.    В связи с тем, что в настоящее время в облаке действует ограничение из п.2, при загрузке данных справочника номенклатуры возникла задача, как за один обход дерева корректно загрузить всю иерархию групп справочника.

Так как в момент обработки каждого отдельного элемента его родитель, в общем случае, еще не записан в базу, то пользоваться стандартными методами НайтиПоКоду(), НайтиПоНаименованию(), НайтиПоРеквизиту() не получится. В данном случае был использован механизм создания объектов на основе UID(благо, в загружаемом XML-файле каждому элементу был присвоен свой идентификатор). Данный механизм позволил устанавливать ссылку на родительский элемент, который еще не загружен в базу, но при этом ссылка на него уже хранится в памяти.

Пример:

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

 Буду рад ответить на ваши вопросы и учесть замечания.

UPD 04.02.2016: 
v 1.0.2 
    - Новый механизм вывода оповещения в связи с переходом на БСП 2.3(конфигурация УНФ 1.6.* и выше)

UPD 21.10.2015:
v 1.0.1 
    - Почищен код
    - Добавлена передача в процедуру записи объектов параметров записи. 
 

Fresh сценарии внешние обработки

См. также

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

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

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134965    721    291    

388

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

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

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 27720 руб.

15.04.2019    68430    179    138    

111

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

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

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34174    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46315    196    64    

158

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9217    9    8    

10

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    20260    132    38    

90

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

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

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 45650 руб.

10.07.2018    67455    41    122    

46

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

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

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150739    365    375    

501
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. waryg 20.10.15 12:42 Сейчас в теме
Полезная тема, спасибо :)
2. Samarin 96 20.10.15 20:04 Сейчас в теме
Тема новая и мало вообще про нее где можно почитать. ИТС не поспевает за всеми изменениями БСП (БТС).
На первых парах тем, кто с облаками столкнется, пригодились бы такие шаблоны выполнения таких сценариев:
- загрузка данных из файла.
- выгрузка данных в файл.
- запись объектов.

Опять все изменили в механизме сценариев - пришлось опять переписывать внешнюю обработку.
В обработке после создания объектов - отправлял оповещение, в котором параметром передавал на клиент список ссылок на созданные объекты, о чем и уведомлялись пользователи.
Теперь это дело перестало работать и как его опять наладить - пока без понятия :(
3. laperuz 46 21.10.15 04:00 Сейчас в теме
(2) Samarin,

- загрузка данных из файла.


Это в обработке есть. Там, по сути, вызов одного метода общего модуля. Единственное, в связи с ограничениями безопасного режима, список форматов, из которых можно грузить, сильно ограничен.

- выгрузка данных в файл.

То же самое, что с выгрузкой, только поменять вызываемый метод, ничего сложного.

- запись объектов.

Это тоже есть, и там тоже вызов одного метода, куда передается массив - список объектов для записи.

В обработке после создания объектов - отправлял оповещение, в котором параметром передавал на клиент список ссылок на созданные объекты, о чем и уведомлялись пользователи.
Теперь это дело перестало работать и как его опять наладить - пока без понятия :(


Вызовом
Конструктор.ДобавитьПараметрВыполненияКоманды(Этап, "РезультатВыполнения");
? У меня на последнем этапе в переменной РезультатВыполнения формируется сообщение для показа на клиенте. Как вариант, через
ДобавитьСохраняемоеЗначение
туда передать массив ссылок и сформировать текст показа, который записать в РезультатВыполнения, он отобразится на клиенте.
4. Samarin 96 23.10.15 14:41 Сейчас в теме
Скачал обработку - посмотрел: у меня примерно так и работало до новой БСП.
Теперь такой функции "СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()" - нет и чем оно заменилось - я не знаю.
5. laperuz 46 26.10.15 13:04 Сейчас в теме
(4) Samarin,
Посмотрел сейчас как в новой БСП.

Там вот такой код:
ПараметрыВыполнения = Новый Структура("РезультатВыполнения", Новый Структура);


Т.е. просто новая структура, без вызова процедуры.

Ну и далее
ПоказатьРезультатВыполненияОбработки(ПараметрыВыполнения);
6. Samarin 96 26.10.15 14:52 Сейчас в теме
Вот к этой структуре и вопросы - как сделать так, чтобы оно все заработало.
Старый код обработки результата - не работает:
Результат.ВыводПредупреждения.Использование = Истина;
Результат.ВыводПредупреждения.Заголовок = НСтр("ru = 'Обработка завершена успешно'");

Конкретное место проблемы - это отработка процедуры вывода результата, которая теперь не отрабатывается и вываливается с ошибкой.
СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения(ВладелецФормы, Результат.РезультатВыполнения);

Там теперь ничего подобного нет, теперь там используются "Шаги". Вот что пишет справка к процедуре вывода:

// * Шаги - СписокЗначений - Информация, которую необходимо вывести на клиенте.
// Шаги добавляются только при помощи процедур:
// ** СтандартныеПодсистемыКлиентСервер.ОповеститьДинамическиеСписки()
// ** СтандартныеПодсистемыКлиентСервер.ОповеститьОткрытыеФормы()
// ** СтандартныеПодсистемыКлиентСервер.РазвернутьУзлыДерева()
// ** СтандартныеПодсистемыКлиентСервер.ВывестиПредупреждение()
// ** СтандартныеПодсистемыКлиентСервер.ВывестиСообщение()
// ** СтандартныеПодсистемыКлиентСервер.ВывестиОповещение()
// ** СтандартныеПодсистемыКлиентСервер.ВывестиФорму()
7. Samarin 96 26.10.15 15:03 Сейчас в теме
Все, разобрался, работает!
Теперь все через эти чертовы шаги работает.

В процедуре ОформитьРезультат(МассивОбъектов, Результат) появляется примерно такое:

СтандартныеПодсистемыКлиентСервер.ОповеститьОткрытыеФормы(
Результат,
"СозданиеДокументов",
ПоместитьВоВременноеХранилище(МассивОбъектов));

СтандартныеПодсистемыКлиентСервер.ВывестиОповещение(Результат, ЗаголовокОповещения, "ru = 'Данные успешно записаны'",, СсылкаНаДокумент);
8. laperuz 46 27.10.15 04:13 Сейчас в теме
(7) Samarin,
Молодец!
Теперь буду ждать, когда УНФ на новую БСП переведут, придется переделывать.
9. Serg1980 28.07.16 15:53 Сейчас в теме
Как работать с объектом XBASE? На веб клиенте он недоступен, а на сервере недоступны операции с файлами в безопасном режиме. Кроме как через файл, XBASE заполнить не могу.
10. tolyan_ekb 104 22.06.17 10:56 Сейчас в теме
загрузка файла XML для БП 3.0.47 на платформе 8.3.8.2027. сценарий загрузки такой же, чтение файла проходит при загрузке такая ошибка.

Значение не является значением объектного типа (ЗагрузитьДанныеИзXMLФайла)
ИсполняемыйОбъект.ЗагрузитьДанныеИзXMLФайла(СохраняемыеПараметры.ЧтениеXML, ПараметрыВыполнения.РезультатВыполнения)

В чем может быть причина?
11. laperuz 46 27.06.17 05:13 Сейчас в теме
(10)
Так тяжело сказать. Судя по всему, в ИсполняемыйОбъект что-то типа Неопределено.
Попробуйте отладчиком посмотреть.
12. laperuz 46 28.06.17 04:17 Сейчас в теме
(10)
Сейчас столкнулся с той же ситуацией.
Причина - незаполненный реквизит формы КлючСессии.
Проверьте:
1. Что обработка запускается через справочник дополнительных обработок, а не через Файл-Открыть.
2. Что в процедуре ПриСозданииНаСервере есть код
Параметры.Свойство("КлючСессии",КлючСессии);
и этот код исполняется.

Я делал обработку, процедуру перенес из другой обработки, а привязать к событию формы забыл, поэтому КлючСессии не инициализировался и выдавалась та же ошибка.
13. tolyan_ekb 104 28.06.17 08:00 Сейчас в теме
(12) спасибо, получилось. Почему-то кодировка в файле изменилась на нечитаемые символы. Когда читал файл без сценария все было правильно.
У вас такое было?
14. laperuz 46 29.06.17 03:58 Сейчас в теме
15. tolyan_ekb 104 29.06.17 10:00 Сейчас в теме
(14) У вас нет примера заполнения реквизита таблицы на форме и его обновления, после заполнения в модуле объекта.
Что-то не могу придумать как обновить таблицу на форме.
16. laperuz 46 30.06.17 11:59 Сейчас в теме
(15)
У меня сделано так:
ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера.ВыполнитьСценарийВБезопасномРежиме(
			КлючСессии,
			АдресСценария,
			Результат
		);


Вот здесь в переменной "Результат" хранится то, что мы передали из модуля объекта.

В модуле объекта делаем последний этап сценария, у меня примерно так:
Если ОтлаживатьКакВстроенную Тогда
		Этап = Конструктор.ДобавитьМетодКонфигурации(Сценарий,
				"Обработки." + ИмяОбработки + ".Создать().ОформитьРезультат", // Имя метода
				);
	Иначе
		Этап = Конструктор.ДобавитьМетодОбработки(Сценарий,
				"ОформитьРезультат", // Имя метода
				);
	КонецЕсли;
	Конструктор.ДобавитьСохраняемоеЗначение(Этап, "АдресТабличногоДокумента");
	Конструктор.ДобавитьПараметрВыполненияКоманды(Этап, "СтруктураДокумента");
Показать
17. kuld 248 11.02.18 12:09 Сейчас в теме
Вот это

После формирования сценария с помощью вызова процедуры
ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера.ВыполнитьСценарийВБезопасномРежиме(
        КлючСессии,
        АдресСценария,
        Результат
    );

сценарий начинает исполняться.

Работает в демо БСП 2.4.4.64, но в УНФ 1.6.12.4 нет даже такого общего модуля "ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера­"

Переменная не определена (ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервера)
<<?>>ДополнительныеОтчетыИОбработкиВБезопасномРежимеВызовСервер­а.ВыполнитьСценарийВБезопасномРежиме( (Проверка: Тонкий клиент)


Что-то поменялось и нигде не могу найти описания как оно теперь работает
Прикрепленные файлы:
18. laperuz 46 11.02.18 16:34 Сейчас в теме
(17) 1С убрали этот механизм из БСП, теперь все это нужно делать через расширения.
19. o.nikolaev 211 02.01.21 01:11 Сейчас в теме
А есть где-то разъяснение про то для чего родной конторой весь этот цирк с конями придуман для простой по сути операции - пишем данные из xml файла в табличку?

Статья отличная, спасибо!
20. ybatiaev 58 09.11.21 10:49 Сейчас в теме
Добрый день!
Скачал вторую обработку
{ВнешняяОбработка.ЗагрузкаДанныхИзПрайсаXML.МодульОбъекта(53,16)}: Переменная не определена (ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс)
Конструктор = <<?>>ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс; (Проверка: Сервер)
{ВнешняяОбработка.ЗагрузкаДанныхИзПрайсаXML.МодульОбъекта(424,2)}: Переменная не определена (СтандартныеПодсистемыКлиентСервер)
<<?>>СтандартныеПодсистемыКлиентСервер.ВывестиОповещение(Результат, Заголовок, ТекстПредупреждения); (Проверка: Сервер)
{ВнешняяОбработка.ЗагрузкаДанныхИзПрайсаXML.МодульОбъекта(53,16)}: Переменная не определена (ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс)
Конструктор = <<?>>ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс; (Проверка: Мобильное приложение-сервер)
{ВнешняяОбработка.ЗагрузкаДанныхИзПрайсаXML.МодульОбъекта(424,2)}: Переменная не определена (СтандартныеПодсистемыКлиентСервер)
<<?>>СтандартныеПодсистемыКлиентСервер.ВывестиОповещение(Результат, Заголовок, ТекстПредупреждения); (Проверка: Мобильное приложение-сервер)

интересует - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс
что теперь вместо этого?
21. laperuz 46 09.11.21 11:30 Сейчас в теме
(20) Добрый день. Этот механизм убрали в начале 2018 года, теперь предлагается делать через расширения.
22. loka 20.09.22 11:12 Сейчас в теме
Здравствуйте! На УНФ 3.0 будет работать?
23. laperuz 46 20.09.22 11:13 Сейчас в теме
(22) Добрый день. Данный механизм неактуален с 2018 года. Сейчас все делается через расширения по сути также, как и для локальных баз.
Оставьте свое сообщение