Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2021, 05:12

Получение значения ТЧ для другой ТЧ того же документа

Автор lelik13121991, 02 апр 2017, 15:13

0 Пользователей и 1 гость просматривают эту тему.

lelik13121991

Имеется документ доходы. В нем есть ТЧ Услуга и ТЧ Зарплата.
В зарплате поле зарплата замерщика вычисляется по формуле (в этой формуле есть значение газ из ТЧ Услуга). Никак не могу разобраться с помощью какой команды можно получить это значение из соседней ТЧ.
Заранее спасибо

lelik13121991

Все таки разобрался самостоятельно. Но возникла новая проблема: при попытке заполнения поля по формуле выскакивает ошибка
Цитировать{Документ.Доходы.Форма.ФормаДокумента.Форма(21)}: Значение не является значением объектного типа (ЗарплатаБригаде)
   цендоп = Строка.ЗарплатаБригаде;

Сама процедура:
Цитировать&НаКлиенте
Процедура Заполнениезарплат(Элемент)
   
   Строка = Элементы.Услуга.ТекущиеДанные;
   ценГаз = Строка.Газ;
   площадь = Строка.ПлощадьКрыши;
   сумкров = Строка.СуммаРаботы;
   



    Строка = Элементы.Зарплата.ТекущиеДанные;
    Если Строка <> Неопределено Тогда
        Строка.ЗарплатаЗамерщика = Строка.Замер + Строка.Завоз + Строка.Вывоз + Строка.ЗаборДенег + Строка.Бонус + Строка.ДопРасходы + ценГаз + (цендоп/2);
      Строка.ЗарплатаБригады = (площадь * 25) + (цендоп/2);
      Строка.ДоходФирмы = сумкров + остаток - Строка.ЗарплатаЗамерщика - Строка.ЗарплатаБригады + цендоп;
    КонецЕсли;

КонецПроцедуры

Почему то ругается именно на этот кусок
ЦитироватьСтрока = Элементы.ДопРабота.ТекущиеДанные;
   цендоп = Строка.ЗарплатаБригаде;
   остаток = Строка.Остаток;

alex0402

или Строка = Неопределено (ТекущиеДанные не выбраны)
или нет коронки ЗарплатаБригаде в табличной части.
Спасибо за Сказать спасибо

Kironten

Замените переменную Строка на например Стр.

lelik13121991

Цитата: alex0402 от 03 апр 2017, 09:55
или Строка = Неопределено (ТекущиеДанные не выбраны)

не совсем понял о чем вы

Цитата: Kironten от 03 апр 2017, 11:27
Замените переменную Строка на например Стр.
не помогло

вот еще саму конфигурацию приложу

Kironten

Цитата: lelik13121991 от 03 апр 2017, 15:24
Цитата: Kironten от 03 апр 2017, 11:27
Замените переменную Строка на например Стр.
не помогло

вот еще саму конфигурацию приложу
Вам не помогло, а мне помогло.
А вообще вы некорректно делаете.
Немного ликбеза:
На каждой ТЧ документа есть строка с текущими данными (если в ней вообще есть строки). Это обычно та строка, которая выбиралась/изменялось последней.
В вашем коде вы обращаетесь к текущим данным одной ТЧ, после этого тут же обращаетесь к текущим данным второй и третей ТЧ. Если в этот момент у вас будут выделены не те строки ТЧ особенно если их несколько, то поучите некорректные данные.
в общем вот это, мягко говоря не очень хороший код:
Стр = Элементы.Услуга.ТекущиеДанные;
ценГаз = Стр.Газ;
площадь = Стр.ПлощадьКрыши;
сумкров = Стр.СуммаРаботы;

Стр = Элементы.ДопРабота.ТекущиеДанные;
цендоп = Стр.ЗарплатаБригаде;
остаток = Стр.Остаток;


    Стр = Элементы.Зарплата.ТекущиеДанные;
    Если Стр <> Неопределено Тогда
        Стр.ЗарплатаЗамерщика = Стр.Замер + Стр.Завоз + Стр.Вывоз + Стр.ЗаборДенег + Стр.Бонус + Стр.ДопРасходы + ценГаз + (цендоп/2);
Стр.ЗарплатаБригады = (площадь * 25) + (цендоп/2);
Стр.ДоходФирмы = сумкров + остаток - Стр.ЗарплатаЗамерщика - Стр.ЗарплатаБригады + цендоп;
    КонецЕсли;

Norfolk

Цитата: lelik13121991 от 03 апр 2017, 15:24
Цитата: alex0402 от 03 апр 2017, 09:55
или Строка = Неопределено (ТекущиеДанные не выбраны)

не совсем понял о чем вы

Цитата: Kironten от 03 апр 2017, 11:27
Замените переменную Строка на например Стр.
не помогло

вот еще саму конфигурацию приложу
Если ваши ТЧ не заполнены, то при получении текущих данных вы получите значение "Неопределено" как сказал товарищ выше. Попробуйте заполнить первые 2 ТЧ: услуга и допработы, а потом заполнить ТЧ зарплата. Все будет работать.
Ставьте проверку на значение Неопределно.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск