Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вызов команды и обработка формы программно          
IvanovIvan Подменю пользователя
сообщение 16.08.15, 23:01
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток друзья!

Получил задачу написать внешнюю обработку, которая перебирает документы и выполняет команду над каждым из них. А именно команду как на скриншоте



Напомню что у нас клиент-сервер. В целом суть команды приведена ниже:

&НаСервере
Функция ЗаполнитьОбеспечениеВУстановленномПорядке(ПереченьВариантов) Экспорт

    //Описание особенностей формы - дату отгрузки работ необходимо брать из поля "Дата отгрузки".
    ПутиКДанным = Новый Соответствие();
    ПутиКДанным.Вставить("ДатаОтгрузкиРабот", "ДатаОтгрузки");

    ПараметрыЗаполнения = Новый Структура("СтатусКВыполнению, ГруппаСкладов, МенеджерРегистра",
        Объект.Статус <> Перечисления.СтатусыЗаказовКлиентов.НеСогласован, Объект.Склад, РегистрыНакопления.ЗаказыКлиентов);

    Таблица = ОбеспечениеСервер.ТаблицаЗаполнениеОбеспечения(
        Элементы.Товары.ВыделенныеСтроки,
        Объект,
        Объект.Товары,
        ПутиКДанным,
        ПереченьВариантов,
        ПараметрыЗаполнения);

    //Перенос результатов в документ.
    ТекстОповещения = Документы.ЗаказКлиента.ЗаполнитьВариантОбеспечения(Объект, ЭтаФорма, "СтрокиТовары", Таблица,
            ПараметрыУказанияСерий, ЗависимыеРеквизиты());

    РассчитатьИтоговыеПоказателиЗаказа(ЭтаФорма);
    СтруктураИтогов = Новый Структура("РазличныеСклады, ЕстьИзЗаказов, ТолькоНеТребуется");
    ОбойтиТаблицуОбновитьЗависимыеРеквизиты(СтруктураИтогов);

    Возврат Новый Структура("Ошибки, Оповещение", Неопределено, ТекстОповещения);

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


Разумеется открывать каждый документ и выполнять команду не варик и передавать управляемую форму на сервер тоже нельзя.

Необходимо отработать команду, которая изменяет данные шапки и таб части. Но передавать на сервер управляемую формы нельзя. Как решить проблему?

Заранее спасибо!

Vofka Подменю пользователя
сообщение 17.08.15, 8:45
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

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

IvanovIvan Подменю пользователя
сообщение 17.08.15, 8:51
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 17.08.15, 9:45) *
Нужно посмотреть зачем в определенные процедуры передается форма. После этого переделать их. Точнее написать свои аналогичные, которые бы работали не с формой.


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

А есть ли такой вариант. Я получаю форму документа по ссылке. И не открывая его вызываю

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

    Если ИсточникВыбора.ИмяФормы = "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа" Тогда

        Детали = ЗаполнитьОбеспечениеВУстановленномПорядке(ВыбранноеЗначение);
        Если Детали.Ошибки <> Неопределено Тогда
            ОчиститьСообщения();
            ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Детали.Ошибки);
        КонецЕсли;
        ПоказатьОповещениеПользователя(ОбеспечениеКлиентСервер.ТекстЗаполнениеОбеспечения(), , Детали.Оповещение);

        СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);

    ИначеЕсли ИсточникВыбора.ИмяФормы = "Перечисление.ВариантыОбеспечения.Форма.ВыборВариантаОбеспечения" Тогда

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


вызываю ОбработкаВыбора программно передав параметры (ВыбранноеЗначение, ИсточникВыбора). Такое возможно? Правда не понимаю как вызывать эту процедуру из обработки


этот вариант не работает, жалуется на ДанныеФормыВЗначение (неверный тип параметра)
    _Объект = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ЗаказКлиента"));
    _Объект.ОбработкаВыбора(ПереченьВариантов, "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа");

Vofka Подменю пользователя
сообщение 17.08.15, 9:34
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Теперь не понятно как между собой связаны функция ЗаполнитьОбеспечениеВУстановленномПорядке и процедура ОбработкаВыбора.

Цитата(IvanovIvan @ 17.08.15, 9:51) *
Такая мысля есть, но там одна за одну цепляются и выстраивается огромное дерево.

В процедурах, куда передается ЭтаФорма, именно ЭтаФорма передается куда-то дальше?

Цитата(IvanovIvan @ 17.08.15, 9:51) *
этот вариант не работает, жалуется на ДанныеФормыВЗначение (неверный тип параметра)

Что находися в ДанныеФормы? Скорее всего у вас там не то, что можно перевести в Объект. И _Объект.ОбработкаВыбора скорее всего не заработает. Зачем вы её вообще вызываете?

IvanovIvan Подменю пользователя
сообщение 17.08.15, 11:35
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

задачу закрыта, сделал так, работает:

    Форма = ПолучитьФорму("Документ.ЗаказКлиента.ФормаОбъекта", Новый Структура("Ключ", СсылкаНаДок));
    Форма.Открыть();
    
    Форма.Элементы.Товары.ВыделенныеСтроки.Добавить(0);    
    Форма.ОбработкаВыбора(ПереченьВариантов, Источник);
    //Форма.Закрыть();

IvanovIvan Подменю пользователя
сообщение 17.08.15, 18:24
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0


тема закрыта


тема закрыта

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 8:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!