Работа с формами документов из общей команды (управляемое приложение)

1. plevakin 08.06.12 11:09 Сейчас в теме
Создал общую команду и подключил ее к документы. Текст модуля команды

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

&НаСервере
Процедура РедактироватьОбъект(КопияТабФормыТовары)

	Для каждого СтрокаТЧ из КопияТабФормыТовары Цикл
		СтрокаТЧ.Цена = 10;	
	КонецЦикла;                                             

КонецПроцедуры
Показать


Теперь собственно о проблеме. Команда срабатывает только если документ не модифицирован. Если он модифицирован, документ ПЕРЕД выполнением обработки записывается сам, и команда не отрабатывает. Поскольку запись документа происходит не по моей воле и ПЕРЕД выполнением, никакой проверки на модифицированность я вставить не могу. В каком направлении курить? Есть идеи?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Ягг 495 08.06.12 11:16 Сейчас в теме
Может не в тему, но зачем это нужно было делать через "команду" (из каких соображений)?
Процедура РедактироватьОбъект() явно напрашивается в модуль объекта документа. Если я правильно понял там в таблицчной части докуменат просто проставляется цена = 10.
3. plevakin 08.06.12 12:41 Сейчас в теме
Немного поясню идею команды. Есть некий алгоритм, который необходимо применять ко всем документам, приходам, расходам, заказам, счетам и пр. Чтоб не менять кучу форм и модулей документов разумно использовать общую команду, что я собственно и сделал. Да, забыл сказать, что флаг "Изменяет данные" в команде не ставил, ибо в этом случае обращаться нужно с объектом, а цель задачи, выполнить какие-то изменения данных в форме не записывая документ, чтобы пользователь имел возможность не сохранять изменения.
5. Ягг 495 08.06.12 13:38 Сейчас в теме
(3) plevakin, в догонку

кстати "Изменяет данные" несет другой смысл - это значит что если форма в которй эта команда имеется открыта только для просмотра, то кнопка (связанная с командой) становится недостуной (т.е. считаетсмя что любое изменение данных запрещено, и недоступны любые кнопки которые данные изменяют)
4. Ягг 495 08.06.12 13:27 Сейчас в теме
Наверно ошибаюсь но боюсь что так не получится. Эти "команды" (из ветки "Команды" объекта конфигурации) работают с записями в базе данных, а не с клиентской часть (то что команда имеет и клиентскую и серверную часть это относится в вызову команды, а не ее исполнению).

В качестве подобным командам параметра передается ссылка. И необходимое тербование чтобы ссылка была одназначна актуально, поэтому и происходит автоматическая запись (ведь команда может быть вызвана и из списка документов к примеру).

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

Если получится иначе - скажите, будет инетерсно :)
6. allexx 39 20.03.14 12:24 Сейчас в теме
Столкнулся с такой же проблемой. Мне захотелось заполнять табличные части некоторых документов не трогая в конфигурации самих документов. Чтобы даже не пришлось разблокировать эти объекты в типовой конфигурации. Мне кажется очень даже часто встречающееся должно быть желание. Каким же образом, если не через общие команды это можно сделать?
7. Lazio 8 20.03.17 16:35 Сейчас в теме
Добрый день! Поделитесь опытом, как решили данную проблему?
8. Lazio 8 20.03.17 16:36 Сейчас в теме
Добрый день! Поделитесь пожалуйста опытом, как решили подобную проблему?
9. allexx 39 11.06.17 16:54 Сейчас в теме
Я расширения задействовал.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)