Имя: Пароль:
1C
1С v8
РегистрыСведений.ЗначенияКолонокДополнительныхТабличныхЧастей
0 Стажер_1С
 
18.08.18
12:59
Привет.
У документа,есть доп-ая колонка,созданная в режиме предприятия.
Мне надо,чтобы при изменения номенклатуры,колонка заполнялась тоже.
На формедокумента,создала событие, при изменении номенклатуры.
И написала след-е:

ЗапросДОП = Новый Запрос;
    ЗапросДОП.Текст =
    
"ВЫБРАТЬ
|    ДополнительныеТабличныеЧастиДокументов.Ссылка КАК ТаблЧасть,
|    КолонкиДополнительныхТабличныхЧастей.Ссылка КАК КолонкаТаблЧасть
|ИЗ
|    Справочник.КолонкиДополнительныхТабличныхЧастей КАК КолонкиДополнительныхТабличныхЧастей
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДополнительныеТабличныеЧастиДокументов КАК ДополнительныеТабличныеЧастиДокументов
|        ПО КолонкиДополнительныхТабличныхЧастей.Владелец = ДополнительныеТабличныеЧастиДокументов.Ссылка
|ГДЕ
|    ДополнительныеТабличныеЧастиДокументов.ИмяТабличнойЧасти = ""Материалы""
|    И ДополнительныеТабличныеЧастиДокументов.ИдентификаторДокумента.ПолноеИмя = ""Документ.АктСписанияМЗ""
|    И КолонкиДополнительныхТабличныхЧастей.Наименование = ""КФО""";
    Резу = ЗапросДОП.Выполнить().Выбрать();
    Пока Резу.Следующий() Цикл
        КФО =  Резу.КолонкаТаблЧасть;
        ТаблЧасть =  Резу.ТаблЧасть;
    КонецЦикла;
Таким образом,я получила допол-ую колонку моего документа.
Далее я записываю свое значения в регистр:
НоваяЗапись     = РегистрыСведений.ЗначенияКолонокДополнительныхТабличныхЧастей.СоздатьМенеджерЗаписи();
            НоваяЗапись.Объект = Объект.Ссылка;
            НоваяЗапись.ТабличнаяЧасть = ТаблЧасть;
            НоваяЗапись.КолонкаТабличнойЧасти = КФО;
            НоваяЗапись.НомерСтрокиДокумента = ЭлементПодбора.НомерСтроки;
            НоваяЗапись.Значение = Перечисления.КВД.ВременноеРаспоряжение;
НоваяЗапись.Записать();

Запись в регистре создается,с эти все хорошо.
ПРОБЛЕМА в том,что в документе она не отображается.То есть в режиме предприятия, ф самом документе,когда я изменяю номенклатуру,у меня запись в регистре создается,но в самом документе эта колонка не заполняется.Почемуу???
1 Стажер_1С
 
18.08.18
13:02
Если написать так,

НоваяЗапись     = РегистрыСведений.ЗначенияКолонокДополнительныхТабличныхЧастей.СоздатьМенеджерЗаписи();
            НоваяЗапись.Объект = Объект.Ссылка;
            НоваяЗапись.ТабличнаяЧасть = ТаблЧасть;
            НоваяЗапись.КолонкаТабличнойЧасти = КФО;
            НоваяЗапись.НомерСтрокиДокумента = ЭлементПодбора.НомерСтроки;
            НоваяЗапись.Значение = Перечисления.КВД.ВременноеРаспоряжение;
НоваяЗапись.Записать();

Док=ТекДок.ПолучитьОбъект();
Док.Записать(РежимЗаписиДокумента.Запись);

Тогда,если снова зайти в документ,то колонка заполнится. Но мне так не подходит,так как документ мне нельзя записывать!И пользователь вряд ли будет пере заходить каждый раз,это глупо
2 Стажер_1С
 
18.08.18
13:09
Плизззззззззз
3 Mort
 
18.08.18
16:56
Погоди, у тебя что-то изменяется в форме, а ты сразу лезешь в регистр? Это неправильно. Пиши изменения в форму. Там в объекте походу добавлена колонка (не знаю откуда изврат с доп колонкой, неважно) и она сама и запишется.
4 Aleksandr N
 
18.08.18
17:05
(0) во-первых прочтите документацию.
а вообще метод ОбновитьИнтерфейс().
но я бы не советовал его использовать.
5 Aleksandr N
 
18.08.18
17:10
(4) Извините, не вник в суть вопроса. Если идет речь о доп. реквизитах, то там уже нужно делать по другому.
6 Стажер_1С
 
20.08.18
08:27
(3) (5) Дело в том,что я не могу с конфи-ра добраться да этой колонки,так как она добавлена только через предприятия.
7 Стажер_1С
 
20.08.18
08:27
Я обошла это все,пришлось добавить эту колонку в конфигураторе
8 catena
 
20.08.18
09:04
(6)Под все механизмы доп.реквизитов есть методы в общих модулях, которые позволяют работать с ними достаточно комфортно.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший