Работа с формами документов из общей команды (управляемое приложение)
Создал общую команду и подключил ее к документы. Текст модуля команды
Теперь собственно о проблеме. Команда срабатывает только если документ не модифицирован. Если он модифицирован, документ ПЕРЕД выполнением обработки записывается сам, и команда не отрабатывает. Поскольку запись документа происходит не по моей воле и ПЕРЕД выполнением, никакой проверки на модифицированность я вставить не могу. В каком направлении курить? Есть идеи?
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Перем КопияТабФормыТовары;
Попытка
ОбъектФормы = ПараметрыВыполненияКоманды.Источник.Объект
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заполнить цены не удалось. Необходимо открыть форму документа");
Возврат
КонецПопытки;
Если ТипЗнч(ОбъектФормы) = Тип("ДанныеФормыСтруктура") И ( ОбъектФормы.Свойство("Товары", КопияТабФормыТовары)) Тогда
РедактироватьОбъект(КопияТабФормыТовары);
КопироватьДанныеФормы(КопияТабФормыТовары, ПараметрыВыполненияКоманды.Источник.Объект.Товары);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РедактироватьОбъект(КопияТабФормыТовары)
Для каждого СтрокаТЧ из КопияТабФормыТовары Цикл
СтрокаТЧ.Цена = 10;
КонецЦикла;
КонецПроцедуры
ПоказатьТеперь собственно о проблеме. Команда срабатывает только если документ не модифицирован. Если он модифицирован, документ ПЕРЕД выполнением обработки записывается сам, и команда не отрабатывает. Поскольку запись документа происходит не по моей воле и ПЕРЕД выполнением, никакой проверки на модифицированность я вставить не могу. В каком направлении курить? Есть идеи?
По теме из базы знаний
- Внешние печатные формы для нетиповой конфигурации (управляемое приложение)
- 1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении.
- Создание внешних печатных форм под управляемым приложением с нуля
- Глобальное меню разработчика для управляемых форм
- Как настроить порядок (расположение) для общих команд (УФ)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Может не в тему, но зачем это нужно было делать через "команду" (из каких соображений)?
Процедура РедактироватьОбъект() явно напрашивается в модуль объекта документа. Если я правильно понял там в таблицчной части докуменат просто проставляется цена = 10.
Процедура РедактироватьОбъект() явно напрашивается в модуль объекта документа. Если я правильно понял там в таблицчной части докуменат просто проставляется цена = 10.
Немного поясню идею команды. Есть некий алгоритм, который необходимо применять ко всем документам, приходам, расходам, заказам, счетам и пр. Чтоб не менять кучу форм и модулей документов разумно использовать общую команду, что я собственно и сделал. Да, забыл сказать, что флаг "Изменяет данные" в команде не ставил, ибо в этом случае обращаться нужно с объектом, а цель задачи, выполнить какие-то изменения данных в форме не записывая документ, чтобы пользователь имел возможность не сохранять изменения.
(3) plevakin, в догонку
кстати "Изменяет данные" несет другой смысл - это значит что если форма в которй эта команда имеется открыта только для просмотра, то кнопка (связанная с командой) становится недостуной (т.е. считаетсмя что любое изменение данных запрещено, и недоступны любые кнопки которые данные изменяют)
кстати "Изменяет данные" несет другой смысл - это значит что если форма в которй эта команда имеется открыта только для просмотра, то кнопка (связанная с командой) становится недостуной (т.е. считаетсмя что любое изменение данных запрещено, и недоступны любые кнопки которые данные изменяют)
Наверно ошибаюсь но боюсь что так не получится. Эти "команды" (из ветки "Команды" объекта конфигурации) работают с записями в базе данных, а не с клиентской часть (то что команда имеет и клиентскую и серверную часть это относится в вызову команды, а не ее исполнению).
В качестве подобным командам параметра передается ссылка. И необходимое тербование чтобы ссылка была одназначна актуально, поэтому и происходит автоматическая запись (ведь команда может быть вызвана и из списка документов к примеру).
Всетак мне думается, придется переносить функциоанл в некий общий модуль и ссылаться на него из разных документов.
Если получится иначе - скажите, будет инетерсно :)
В качестве подобным командам параметра передается ссылка. И необходимое тербование чтобы ссылка была одназначна актуально, поэтому и происходит автоматическая запись (ведь команда может быть вызвана и из списка документов к примеру).
Всетак мне думается, придется переносить функциоанл в некий общий модуль и ссылаться на него из разных документов.
Если получится иначе - скажите, будет инетерсно :)
Столкнулся с такой же проблемой. Мне захотелось заполнять табличные части некоторых документов не трогая в конфигурации самих документов. Чтобы даже не пришлось разблокировать эти объекты в типовой конфигурации. Мне кажется очень даже часто встречающееся должно быть желание. Каким же образом, если не через общие команды это можно сделать?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот