Имя: Пароль:
1C
1С v8
Как зафиксировать значение в табличной части
0 Ramis333
 
07.06.18
11:46
Нужно чтобы при открытии или создании документа в строке табл.части была фиксированная цифра 20

Элементы.УслсугиРасценка = 20;
1 hhhh
 
07.06.18
11:48
(0) это тебе не в элементы надо. а в данные
2 Ramis333
 
07.06.18
12:09
тд =  Элементы.Услуги.ТекущиеДанные;
     тд.Расценка = 20;
3 Михаил Козлов
 
07.06.18
12:10
В какой из строк ТЧ? Может Вам нужно проставлять 20 при изменениях ТЧ?
4 Ramis333
 
07.06.18
12:15
во всех строках. в колонке расценка
5 catena
 
07.06.18
12:15
(2)Какие там текущие данные, если документ новый?
6 Малыш Джон
 
07.06.18
12:15
(4) наверное все таки не при открытии или создании, а при добавлении строки в ТЧ?
7 Ramis333
 
07.06.18
12:16
при открытии автоматически заполнены работы. 15 позиций. не могу добавить к ним расценки
8 Ramis333
 
07.06.18
12:17
при добавлении тоже надо
9 Малыш Джон
 
07.06.18
12:19
>>не могу добавить к ним расценки

надо уже таки себя заставить

>>при открытии автоматически заполнены работы

Тогда роли она у тебя особой не играет, эта колонка. Добавляй на форму, если ещё нету. При получении данных - заполняй.
10 catena
 
07.06.18
12:34
(7)Найди, откуда они заполнены, сделай там же по аналогии.
11 Ramis333
 
07.06.18
12:53
нашел процедуру заполнения

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




исправил на код

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