Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 сен 2025, 18:12

Как при запуске работы системы запустить внешнюю обработку

Автор sali, 11 сен 2025, 08:50

0 Пользователей и 2 гостей просматривают эту тему.

sali


antoneus


sali

antoneus, мне ощущается сарказм в ваших словах, и чувствую подвох в задании

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

antoneus

Ну, исходя из имеющейся у меня информации

Цитата: sali от Сегодня в 11:12по кнопке заполнить заполняется тч Товары (там вся номенклатура),

Цитата: sali от Сегодня в 12:11проверяет всякий отбор если установлен

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

Цитата: sali от Сегодня в 11:12МассивСтрокВыгрузки = Товары.НайтиСтроки(Новый Структура("Выбран", Истина));

Получаем строки со всей номенклатурой, отдаем в регламент. Так или нет?

sali

antoneus, так
просто выгрузить цены по всей номенклатуре регламентом

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

но без сложностей не обойтись и вопрос в том как сформировать массив

sali

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

как это можно улучшить? где запустить?

antoneus

При чем тут форма?
Как вообще задача звучит? Что нужно сделать?

Регламентное задание - это запуск процедуры сервером 1С. Вот сервер берет и сам без участия пользователей запускает процедуру по расписанию. Поскольку он сервер, то есть бездушная машина без глаз и рук, ему не нужны всякие формочки и кнопочки. Ему подавай на исполнение код в серверном контексте.

Так вот, как звучит задача? Абстрагируйся от форм, их реквизитов, табличных частей - это всё суета. Что должно произойти?

sali

Цитата: sali от Сегодня в 12:44просто запустить эту процедуру
НЕ ПРОСТО. И НЕ ПРАВИЛЬНО.
пустой список массив

sali

Цитата: antoneus от Сегодня в 15:09Как вообще задача звучит? Что нужно сделать?
я пробовал такой запуск, чтобы понять как работает. конечно такой запуск был неверен

Цитата: antoneus от Сегодня в 15:09Так вот, как звучит задача?
запустить выгрузку остатков и цен на сервер эдо с помощью регламента





antoneus

Вот и сформируй этот массив сам и скорми его уже этой процедуре. Берешь и создаешь массив структур с такими же именами полей, как в этой тч. В то поле, в котором лежит номенклатура, клади номенклатуру и отдавай.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск