Имя: Пароль:
1C
1С v8
УПП. Добавить действие на форму кроме обработок заполнения ТЧ и печатных форм ?
0 Ковычки
 
15.06.13
11:45
Есть ли способ без изменений конфигурации добавить действие для формы документа, кроме обработок заполнения ТЧ и внешних печатных форм ?

Попутно - когда добавляю обработку для заполнения ТЧ (в обработке не трогается ни ТЧ и вообще кода нету в процедуре "Инициализировать") флаг модифицированности видимо взводится - как его отследить и сбросить, либо как сделать, что бы при вызове обработки он не взводился ?
1 Ковычки
 
15.06.13
12:04
Как сбросить в обработке понял, а как отследить в обработке, что модифицированность была (или нет) до запуска обработки ?
2 Ковычки
 
15.06.13
12:10
Как "отловить" и сбросить понял, но может можно как то иначе, особо в свете первого вопроса ?
И какие могуд быть косяки ? (не считая, что в коде не указана форма, это после)

Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
   Если Не Объект.Модифицированность() Тогда
       Объект.ПолучитьФорму().Модифицированность=Ложь;
   КонецЕсли;
КонецПроцедуры
3 Ковычки
 
15.06.13
12:20
А можно ли на кнопку ОК формы документа навешать дополнительный функционал не лазя в конфигурацию ?
Ну или на процедуру проведения так же не меняя конфигурации ?
4 mehfk
 
15.06.13
12:31
Ты уж определись что тебе нужно - перехватывать события модуля документа или модуля формы документа. Для первоговарианта придумали подписки, для второго варианта еще ничего не придумали.
5 Ковычки
 
15.06.13
12:56
(4) шибко умный, да ?
6 ОбычныйЧеловек
 
15.06.13
13:03
(5)  в (4) тебе задали вопрос (как впрочем и ответ) - ты бы не умничал
А прислушался.
7 ДенисЧ
 
15.06.13
13:09
не лазя в конфигурацию - нельзя.
point.
8 Ковычки
 
15.06.13
13:12
(6) и как использовать подписки не изменяя конфигурации ?
9 ДенисЧ
 
15.06.13
13:14
(8) читай (7)
И иди выпей воттки.
10 ОбычныйЧеловек
 
15.06.13
13:55
(8) в данной конкретной конфигурации - никак.
11 Ковычки
 
16.06.13
17:02
Попытка

Есть ли способ добавить кнопку/действие на панель инструментов журнала, не меняя конфигурацию и не используя вк, кроме как создав внешнюю печатную форму возвращаемую Неопределено ?
12 mehfk
 
16.06.13
18:02
(5) А ты шибко тупой ?
13 Ковычки
 
16.06.13
18:02
(12) абсолютно
14 mistеr
 
16.06.13
19:08
А исходную задачу озвучить не желаешь?
15 Ковычки
 
17.06.13
08:13
Продолжу

Как из внешней обработки (внешняя печатная форма) определить, что она вызвана из нее самой ?
Таким кодом.


Процедура ОткрытьФормуВыбораПечатныхФормОбъекта(Объект, ФормаВладелец) Экспорт
   Перем Имя;
   // Открыть форму выбора печатных форм
   Форма = ПолучитьОбщуюФорму("ФормаВыбораПечатныхФорм", ФормаВладелец, Объект);
   Если Форма.ОткрытьМодально() <> Истина Тогда
       Возврат;
   КонецЕсли;
   // Печать макета объекта
   Для каждого СтрокаКнопки Из Форма.ЭлементыФормы.ДеревоМакетовПечати.ВыделенныеСтроки Цикл
       //Сообщить(СтрокаКнопки.Текст+ЭтотОбъект.Метаданные().ПолноеИмя());
       Расшифровка = СтрокаКнопки.Расшифровка;
       
       Если ТипЗнч(Расшифровка) = Тип("Структура") и Расшифровка.ВидПечатнойФормы = Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма Тогда
           Попытка
               Расшифровка.ДополнительныеПараметрыОбработки.Свойство("Имя",Имя);
               //Сообщить(ВРег(СокрЛП(Имя))+ВРег(СокрЛП(ЭтотОбъект.Метаданные().Представление())));
               Если ВРег(СокрЛП(Имя))=ВРег(СокрЛП(Расшифровка.СсылкаНаВнешнююОбработку.Наименование)) Тогда
                   Инициализировать(Объект,Неопределено,Неопределено);
                   Продолжить;
               КонецЕсли;
           Исключение
           КонецПопытки;
           ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Объект.Ссылка, Расшифровка);
           ЭтоДокумент = Метаданные.Документы.Содержит(Объект.Метаданные());
           УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 0, Форма.НаПринтер, ?(ЭтоДокумент, ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект), Строка(Объект)), Объект.Ссылка);
       Иначе
           Объект.Печать(Расшифровка, 0, Форма.НаПринтер);
       КонецЕсли;
   
   КонецЦикла;
КонецПроцедуры // ОткрытьФормуВыбораПечатныхФормОбъекта()

Функция Печать() Экспорт
   Объект=СсылкаНаОбъект.ПолучитьОбъект();
   Форма=Объект.ПолучитьФорму();
   ОткрытьФормуВыбораПечатныхФормОбъекта(Объект, Форма);
   Возврат Неопределено;
КонецФункции
16 Ковычки
 
17.06.13
08:14
Пока использовал дополнительный параметр в который занес Наименование элемента справочника внешниеобработки
17 Ковычки
 
17.06.13
08:18
Можно конечно третьим параметром передать флаг, но может как то иначе ?