Имя: Пароль:
1C
1С v8
Запись значения в табличную часть формы списка спарвочника
0 geniusbsd
 
14.06.15
14:41
Добрый день
Пока работаем на ТИС
Сел разбираться с 1С розница ред-1
В семерки я клиентам делал вывод цены и остатков в справочнике Номенклатур в поля табличной части
Хотел попробовать сделать такое же в восьмерке но что то не получается
Цены и остатки я получил из регистров с этим проблем не возникло
А вот как вывести эти данные в табличную часть формы ни как не могу понять. Добавил колонку но данные можно указать только реквизиты справочника. :(
Самое простое решение это добавить реквизиты типа число
Но это не правильно по моему нафиг дублировать информацию
Можно отобразить в отдельной ТЗ или просто текстом данные для одной позиции при выборе строки но так тоже не подходит

Как можно в ячейку записать значение переменной :)
1 ДенисЧ
 
14.06.15
14:48
Добавь пустую колонку и выводи в неё информацию в ПриПолученииДанных()
2 geniusbsd
 
14.06.15
15:04
(1) Вот у меня и не получается вывести информацию в колонку
3 geniusbsd
 
14.06.15
15:15
Делаю вот так
Вот к при меру
ЭлементыФормы.СправочникСписок.Колонки.Ценаопт=123;

Но колонка опт так и остается пустой
4 DES
 
14.06.15
15:37
попробуй ЭлементыФормы.СправочникСписок.Колонки.Ценаопт.Значение=...
5 ДенисЧ
 
14.06.15
15:42
оформлениеСтроки.Ячейки.ЦенаПот.УстановитьТекст("12.3");
6 geniusbsd
 
14.06.15
15:58
(4) ошибка Поле объекта не Обнаружено(Значение) и в синтак помощнике написано что Колонки только для чтения
(5) Переменная не определена
А если ЭлементыФормы.СправочникСписок.ОформлениеСтроки.Ячейки.ЦенаОпт.УстановитьТекст("вава");
Поеобъекта не обнаружено(ОформлениеСтроки)
7 geniusbsd
 
14.06.15
16:08
Разобрался
спасибо
8 geniusbsd
 
14.06.15
20:52
[code]
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
номенклатура =  ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
СпрТипЦен = Справочники.ТипыЦенНоменклатуры;
Оптовая = СпрТипЦен.НайтиПоНаименованию("Оптовая");
Розничная = СпрТипЦен.НайтиПоНаименованию("Розничная");
Закупочная = СпрТипЦен.НайтиПоНаименованию("Закупочная");    
Если номенклатура.Этогруппа = Ложи   Тогда
ОформлениеСтроки.Ячейки.Ценаопт.УстановитьТекст(Строка(Ценообразование.ПолучитьЦенуНоменклатурыПоТипуЦен(ТекущаяДата(),Оптовая,номенклатура)));
КонецЕсли;
КонецПроцедуры [/code]

Вылазит ошибка значение не является значением объектного типа (Этогруппа)

Когда делал процедуру при нажатии на кнопку стоя на строке в списке справочника все работало
Где моя ошибка
9 ДенисЧ
 
14.06.15
20:53
номенклатура =  ЭлементыФормы.СправочникСписок.ТекущаяСтрока;

Тут
10 ДенисЧ
 
14.06.15
20:54
И тут
Этогруппа = Ложи  

Ложи не правильно. Правильно - клади.
11 geniusbsd
 
14.06.15
21:15
(9) А что тут не правильно ? как Надо?
(10) Тут понятно тут опечатка
12 RomanYS
 
14.06.15
21:26
останови отладчиком и посмотри
возможно надо текущиеданные вместо текущая строка
13 ДенисЧ
 
14.06.15
21:34
(11) офорлениеСтроки.ТекущиеДанные.Номенклатура.
Ты бы справку почитал, что ли...
14 RomanYS
 
14.06.15
21:36
(8) тебе надо обрабатывать ту строку, которая выводится, т.е. из параметра события: ДанныеСтроки. А ты работаешь с текущей строкой, которая может быть вообще не выбрана.
Отладчик в помощь
15 geniusbsd
 
14.06.15
21:48
Всем спасибо большое

Получилось так

Номенклатура = ОформлениеСтроки.ДанныеСтроки;
ОформлениеСтроки.Ячейки.Ценаопт.УстановитьТекст(Строка(Ценообразование.ПолучитьЦенуНоменклатурыПоТипуЦен(ТекущаяДата(),Оптовая,номенклатура.Ссылка)));
16 RomanYS
 
14.06.15
21:51
(15) у тебя уже есть ДанныеСтроки, зачем их снова тянуть из оформления?
17 geniusbsd
 
14.06.15
22:08
Вы имеете ввиду так?
18 geniusbsd
 
14.06.15
22:09
Вы имеете ввиду так?
Номенклатура = ДанныеСтроки;
19 RomanYS
 
14.06.15
22:17
(18) да
а если переименовать третий параметр в "Номенклатура", то эту строку можно вообще убрать
20 geniusbsd
 
14.06.15
22:23
Спасибо
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший