|
Заполнение реквизита тч при открытии документа | ☑ | ||
---|---|---|---|---|
0
noooobok
17.06.15
✎
15:04
|
Здравствуйте! 1с 8.2 упп
Задача в следующем: необходимо добавить колонку "Артикул" в табличную часть документа "Распоряжение на изменение рецептуры". Также Артикул должен соответствовать Номенклатуре и наоборот. Это я сделал. Добавил новый реквизит в тч, добавил колонку на форму, добавил событие ПриИзменении для артикула и номенклатуры. Код следующий: Процедура ПродукцияНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Продукция.ТекущиеДанные; СтрокаТабличнойЧасти.Артикул = Элемент.Значение.Артикул; КонецПроцедуры Процедура ПродукцияАртикулПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Продукция.ТекущиеДанные; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Артикул = &Артикул | И Номенклатура.ВидНоменклатуры = &ВидНоменклатуры"; Запрос.УстановитьПараметр("Артикул", СтрокаТабличнойЧасти.Артикул); Запрос.УстановитьПараметр("ВидНоменклатуры", Справочники.ВидыНоменклатуры.НайтиПоКоду("000000023")); Результат = Запрос.Выполнить().Выбрать(); КолВоЗаписей = Результат.Количество(); Если КолВоЗаписей = 1 Тогда //Выборка = Результат.Выбрать(); Результат.Следующий(); СтрокаТабличнойЧасти.Номенклатура = Результат.Ссылка; КонецЕсли; КонецПроцедуры В итоге при вводе Артикула изменяется Номенклатура и наоборот. Но есть одна недоработка, которую не знаю как пофиксить: если заходишь в существующий документ, в котором уже есть номенклатура, колонка Артикул не заполнена. Заполняется только при изменении. Хелпанете? Мб в Процедуру ПриОткрытии допилить чего-нибудь? |
|||
1
Ненавижу 1С
гуру
17.06.15
✎
15:06
|
не нужен реквизит Артикул в ТЧ документа, он и так однозначно вычисляется по номенклатуре, его надо расчитывать при показе ТЧ
|
|||
2
noooobok
17.06.15
✎
15:20
|
(1)
Можно более подробно? |
|||
3
D_E_S_131
17.06.15
✎
15:22
|
(2) В УПП много документов, где такое сделано. Можно самому посмотреть. Принцип один — работать с ОформлениемСтроки, используя предопределенную процедуру ПриВыводеСтроки().
|
|||
4
Stim
17.06.15
✎
15:27
|
НИКОГДА
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ ИЗМЕНЯЙ ДАННЫЕ В ПРОЦЕДУРЕ ПРИОТКРЫТИИ() !!! |
|||
5
D_E_S_131
17.06.15
✎
15:29
|
(4) А чего эта? Во всех типовых ПриОткрытии меняются данные, а ему нельзя?
|
|||
6
totparen
17.06.15
✎
15:38
|
(5) Мне кажется ЕМУ, пока нельзя. ))
|
|||
7
Ненавижу 1С
гуру
17.06.15
✎
15:43
|
(5) это в каких?
|
|||
8
Stim
17.06.15
✎
15:44
|
(5) например
|
|||
9
totparen
17.06.15
✎
15:45
|
(5) Видимо имеется в виду Данные, как реквизиты объекта, а не как код процедуры.
|
|||
10
totparen
17.06.15
✎
16:11
|
(0)
В табличную часть формы, добавьте поле "Артикул", В обработчик события ПриВыводеСтроки, табличного поля ОформлениеСтроки.Ячейки.Артикул.УстановитьТекст(ДанныеСтроки.Номенклатура.Артикул); |
|||
11
D_E_S_131
17.06.15
✎
16:19
|
(7)(8) Например Заказ покупателя из УТ 10.3 имеет такой код в ПриОткрытии()
|
|||
12
noooobok
17.06.15
✎
16:20
|
(3) спасибо за наводку, сделал так:
Процедура ПродукцияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ОформлениеСтроки.Ячейки.Артикул.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Артикул.Текст = ДанныеСтроки.Номенклатура.Артикул КонецПроцедуры |
|||
13
Stim
18.06.15
✎
09:08
|
(11) И? Речь идет о открытии уже существующего документа, а не создании нового
|
|||
14
mikiFox
18.06.15
✎
09:25
|
Не нужно ничего менять в процедурах. Напиши внешнюю обработку, перебери доки и проставь везде артикулы. Или действительно выводи только информативно ПриВыводеСтроки в колонку тч, а реквизит тч удали тогда
|
|||
15
Kurbash
18.06.15
✎
09:41
|
а если изменить форму саму а не объект? добавит реквизит в ТЧ ФОРМЫ, и путь к данным прописать артикул из ТЧ номенклатуры?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |