Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=28890)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Нужна помощь в добавлении реквизита в РН

Автор: Ayrym 24.03.16, 12:47

Добрый день! помогите новичку. Нужно в РН добавить в табличное поле новый реквизит, который активен только в случае если Номенклатура соответствует конкретному значению, к примеру Если это услуга Вода, значит реквизит Насос активен.

Процедура УслугиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ЭлементыФормы.Услуги.Колонки.Всего.Видимость Тогда

        ОформлениеСтроки.Ячейки.Всего.УстановитьТекст(ОбщегоНазначения.ФорматСумм(ДанныеСтроки.Сумма
                                            + ?(СуммаВключаетНДС, 0, ДанныеСтроки.СуммаНДС)));
    КонецЕсли;

    Если ЭлементыФормы.Услуги.Колонки.Номенклатура.Данные.Реквизиты.НаименованиеПолное = "Постачання пари  та гарячої води"  Тогда      // Лена//
        ОформлениеСтроки.Ячейки.Котельная.Видимость = Ложь      // Лена//
    КонецЕсли;
КонецПроцедуры


 i 

Правила, п.3,12
 


Выводит ошибку, что я делаю не так?

{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(1835)}: Значение не является значением объектного типа (Реквизиты)
Если ЭлементыФормы.Услуги.Колонки.Номенклатура.Данные.Реквизиты.НаименованиеПолное = "Постачання пари та гарячої води" Тогда

Автор: logist 24.03.16, 12:50

В табличном поле нельзя сделать активным или не активным отдельное поле.

Автор: Zaval 24.03.16, 12:57

Цитата(Ayrym @ 24.03.16, 12:47) *
Добрый день! помогите новичку. Нужно в РН добавить в табличное поле новый реквизит, который активен только в случае если Номенклатура соответствует конкретному значению, к примеру Если это услуга Вода, значит реквизит Насос активен.

А для песка - реквизит "Лопата" и т. д.?
Вот этот "Насос" - это что?

Автор: Ayrym 24.03.16, 12:59

Zaval @ Сегодня, 12:57 *,
Буду говорить о конкретном примере. РН отпускает все услуги, но есть услуга, теплопостачання, и нужно именно ее привязать к Котельне, потому в таб.часть решили добавить реквизит Котельня, но что б он был только для конкретной услуги

Автор: Zaval 24.03.16, 13:18

Цитата(Ayrym @ 24.03.16, 12:59) *
Буду говорить о конкретном примере. РН отпускает все услуги, но есть услуга, теплопостачання, и нужно именно ее привязать к Котельне, потому в таб.часть решили добавить реквизит Котельня, но что б он был только для конкретной услуги

Веревочкой не пробовали? smile.gif
Начните с полной постановки задачи, причем обязательно - в терминах учета.
Может, "теплопостачання" - не услуга, а ГП? Вырабатывается на опр. составе оборудования(амортизация, ремонты) с использованием материалов(ресурсов), требует затрат на персонал и пр...

Автор: Ayrym 24.03.16, 13:31

Zaval @ Сегодня, 13:18 *,
нет, именно услуга, и котельня, это не ОС, это просто место создания услуги. Тоесть для будущей разбивки создали справочник с этими котельнями и теперь просто нужно привязать их в РН, но только под определенный вид услуги, что б прочие, не забивались

Автор: Vofka 24.03.16, 13:37

Скрыть нельзя, можно сделать недоступной. Сейчас готового примера не дам, но пока попробуйте как вы делали, но вместо видимости использовать Доступность = Ложь либо ТолькоПросмотр = Истина

Автор: Ayrym 24.03.16, 13:49

Vofka @ Сегодня, 13:37 *,
А как правильно эту строчку прописать?
Если ЭлементыФормы.Услуги.Колонки.Номенклатура. = Тогда
у меня здесь загвоздка, как подойти к наименованию?

Автор: Zaval 24.03.16, 14:13

Цитата(Ayrym @ 24.03.16, 13:31) *
просто нужно привязать их в РН

Зачем?
Клиент и котельня уже привязаны друг к другу толстой трубой.
Если котелен на одной трубе несколько, то определять "вклад" каждой в момент формирования РН ручной установкой реквизита - очень глупое решение.
Представляете себе работу оператора на формировании РН?
После Вашей "доработки" ему еще нужно будет знать топологию теплосетей, помнить, какая из котелен сколько работала/простаивала и контролировать, сколько на какую котельню он уже "повесил" в предыдущих РН? А РН нужно сформировать вовремя - привет, ашипки!

Ваша проблема с реквизитом - результат неправильной постановки задачи.

Автор: Ayrym 24.03.16, 14:46

Zaval @ Сегодня, 14:13 *,
Эти данные по поставке тепла ведутся на бумажках, и подаются 1 общей суммой по всем котельням - не более 10 штук. И финансист хочет эти данные вытягивать через отчет а не звонить всем подряди

Автор: Vofka 24.03.16, 14:46

Цитата(Ayrym @ 24.03.16, 13:49) *
А как правильно эту строчку прописать?
Если ЭлементыФормы.Услуги.Колонки.Номенклатура. = Тогда
у меня здесь загвоздка, как подойти к наименованию?

Зависит от того, что вы хотите сравнивать. Если наименование, то скорее всего так:
Если ДанныеСтроки.Номенклатура.Наименование = "Котельня" Тогда

Но это решение в лоб. Если вы так сделаете - то не показывайте это приличным людям.

Автор: Ayrym 24.03.16, 15:19

Vofka @ Сегодня, 14:46 *,
а как сделать что б приличным показать не стыдно было? я этот вариант попробовала, не работает(((. Помогите чайнику

Автор: Zaval 24.03.16, 15:21

Цитата(Ayrym @ 24.03.16, 14:46) *
И финансист хочет эти данные вытягивать через отчет а не звонить всем подряди

А достоверность его не волнует?
Эти данные должны сниматься со счетчиков(или рассчитываться специалистом) и вноситься в систему теми, кто с этими данными работает.
Выписыватель РН в чем виноват и чем помочь может?

Автор: Vofka 24.03.16, 15:47

Ayrym, вы пишете, что что-то делаете и что-то не работает. При этом непонятно что конкретно вы делаете, почему не работает. Мне дальше угадывать не интересно.

Автор: Ayrym 24.03.16, 15:54

Zaval @ Сегодня, 15:21 http://pro1c.org.ua/index.php?act=findpost&pid=110302,

Если ЭлементыФормы.Услуги.Колонки.Номенклатура = "Поштові послуги" Тогда                             
        ОформлениеСтроки.Ячейки.Котельная.Доступность = Ложь                                    
КонецЕсли;


вот это и не работает


"Поштові послуги" просто для пробы ввела

Автор: Vofka 24.03.16, 16:10

Ayrym,
1. Выделяйте код!
2.

Если ЭлементыФормы.Услуги.Колонки.Номенклатура.Наименование = "Поштові послуги" Тогда                             
        ОформлениеСтроки.Ячейки.Котельная.Доступность = Ложь                                    
КонецЕсли;

Автор: Ayrym 24.03.16, 16:35

Vofka @ Сегодня, 16:10 *,
Извените я туплю сегодня

Автор: Sushko.Den 25.03.16, 9:46

Я можу шось плутати, але окремо на цій строчці можна колонку редагувати, а на цій строчці не можна не вийде. Я б порадив перевіряти "ПередРедактированием" поля "котельная". Якщо значення послуги відповідає необхідному, редагування дозволяєте, якщо не відповідає - не дозволяєте. І треба буде ще перевіряти закінчення редагування поля номенклатура, аби не зробили ту що можна, а потім ту що не можна, а котельна вже обрана.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua