Имя: Пароль:
1C
1С v8
Вопрос по внешней обработке таб. части документа (модифицированность объекта)
0 Saari
 
13.09.16
15:30
Сделал внешнюю обработку по заполнению табличной части документа по условию. В модуле обработки прописал процедуру Инициализировать(), в теле которой вызвал функцию по анализу данных и заполнению табличной части.
Обнаружил, что даже если тело процедуры Иницализировать() оставить пустым (никаких значений в реквизитах в документе не изменяется), то после вызова внешней обработки из документа документ становится измененным (появляется * в заголовке окна документа и при закрытии появляется вопрос о сохранении изменений).
Как сделать так, что если данные в документе не меняются (из обработки по заполнению таб. части), то и признака измененности не было бы?
1 Лефмихалыч
 
13.09.16
15:31
значит данные меняется где-то еще
2 Saari
 
13.09.16
15:37
Вот модуль внешней обработки:
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт
    
КонецПроцедуры

Все. Нет формы обработки, в модуле обработки тоже ничего больше нет.
Но при вызове ее из документа по кнопке "Заполнить" получаю, что документ становится измененным.
3 Nuobu
 
13.09.16
15:43
Когда создаётся форма, то эти кнопки создаются программно. В процедуре создания (в УТП это УниверсальныеМеханизмы.СформироватьПодменю (строка 339)) есть создание кнопки:

Кнопка = Кнопки.Добавить(бла, бла, бла);
// еще какой-то код

Кнопка.ИзменяетДанные = СтрокаКнопок.ИзменяетДанные;

Последняя строка заполняется тут:
УниверсальныеМеханизмы.ПолучитьДеревоКнопокЗаполненияТабличныхЧастей():

ДобавитьСтрокуВДеревоКнопок(СтрокаПодменю, "ЗаполнениеТЧ"+НомерКнопки, ТипКнопкиКоманднойПанели.Действие, ВыборкаДействий.Наименование, Действие , ВыборкаДействий.Ссылка, , , , , Истина)

Последний параметр (истина) это и есть "ИзменяетДанные".
4 Saari
 
14.09.16
08:38
УТ 10.3, документ "Поступление товаров и услуг".
В форме документа на закладке "Товары" есть кнопка "Заполнить", у которой есть меню из нескольких пунктов. В свойстве каждого пункта этого меню есть отметка "Изменяет данные".
Я не нахожу где находится прописание пункта меню с вызовом внешней обработки по заполнению таб. части документа.
Видимо там нужно указать этот параметр? Подскажите, пожалуйста.
5 PaulBC
 
14.09.16
08:51
Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
    
.....
    Объект.ПолучитьФорму().Модифицированность = Ложь;
    
КонецПроцедуры
6 Saari
 
14.09.16
09:07
(5) Спасибо! Получилось.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn