Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Galina_71
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 10
1

Установка определенного значения реквизита в зависимости от значения предыдущего реквизита

22.12.2018, 21:17. Просмотров 840. Ответов 5
Метки нет (Все метки)

Здравствуйте, я новичок, учебная задача, своя конфигурация.
Имею дело с пошивом одежды. Есть иерархический справочник "Ткани". В нем все ткани поделены на простые и сложные - реквизит Родитель (см вложение 1). Есть прейскурант с ценами одежды. У каждого изделия 2 цены в зависимости из какой ткани оно шьется (см вложение 2). Есть документ с управляемой формой, где я выбираю изделие и ткань. Нужно, чтобы правильная цена встала в ревизит ЦенаПошива. То есть если выбирается ткань простая, то в документе должна проставиться ЦенаПростая, а если сложная, то ЦенаСложная.
Хочу сделать так: при выборе изделия в табличной части, проставляется его ЦенаПростая, а если ткань будет выбрана из сложных, то цена меняется на ЦенаСложная. Пытаюсь сделать это в ТканьПриИзменении. Но не выходит. Вот код. Подозреваю, что проблема в строках. Что я делаю не так?
1C
1
2
ЗначениеРеквизита = ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань);
    Если ЗначениеРеквизита = "Сложные" Тогда
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
&НаКлиенте
Процедура ОсновноеИзделиеИзделиеПриИзменении(Элемент)
    ТекСтрока = Элемент.Родитель.ТекущиеДанные;
    ТекСтрока.ЦенаПошива = ПолучитьЦенуПошива1НаСервере (ТекСтрока.Наименование);
КонецПроцедуры
 
&НаКлиенте
Процедура ОсновноеИзделиеТканьПриИзменении(Элемент)
    ТекСтрока = Элемент.Родитель.ТекущиеДанные;
    ЗначениеРеквизита = ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань);
    Если ЗначениеРеквизита = "Сложные" Тогда 
       ТекСтрока.ЦенаПошива = ПолучитьЦенуПошива2НаСервере (ТекСтрока.Наименование);
    КонецЕсли;
    КонецПроцедуры
 
&НаСервере
Функция ПолучитьГруппуТканиНаСервере(Ткани)
    Возврат Ткани.Родитель;
КонецФункции
 
&НаСервере
Функция ПолучитьЦенуПошива2НаСервере(Прейскурант)
    Возврат Прейскурант.ЦенаСложная;
КонецФункции
 
&НаСервере
Функция ПолучитьЦенуПошива1НаСервере(Прейскурант)
    Возврат Прейскурант.ЦенаПростая;
КонецФункции
0
Миниатюры
Установка определенного значения реквизита в зависимости от значения предыдущего реквизита   Установка определенного значения реквизита в зависимости от значения предыдущего реквизита   Установка определенного значения реквизита в зависимости от значения предыдущего реквизита  

Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2018, 21:17
Ответы с готовыми решениями:

Вычитание 1 из значения реквизита
Привет! Помогите исправить код. В базе есть справочник Документы с реквизитом Экземпляры, при...

Перезапись значения реквизита в ТЧ документа
Здравствуйте. в Собственной конфигурации на 1С8.3 есть документ "Ежедневныйотчет" с ТЧ "Работы". В...

Выбор значения реквизита документа по условию
Здравствуйте. В собственной конфигурации 1с 8.3 потребовалось сделать такую логику: справочник...

Присвоение значения реквизита к табличной части
Здравствуйте! Помогите пожалуйста с присвоением. Такая вот проблема, есть документ "Приказ на ввод...

Получение значения реквизита справочника в документ
Добрый день, есть вопрос Как сделать чтобы реквизит табличной части документа получал данные из...

5
Galina_71
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 10
23.12.2018, 19:47  [ТС] 2
Неужели никто не подскажет?
0
polax
931 / 608 / 205
Регистрация: 16.01.2015
Сообщений: 2,149
23.12.2018, 20:36 3
Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

Не по теме:

Выходные. Всем лень ))


Galina_71, А самое главное, вы сами правильно определили ошибку
1C
1
Если ЗначениеРеквизита = "Сложные" Тогда
В функции ПолучитьГруппуТканиНаСервере(Ткани) вы получаете тип значения НЕ строка ("Сложные"), а СправочникСсылка.Ткани.
Т.е. условие должно быть по-другому. Как вариант
1C
1
Если Строка(ЗначениеРеквизита) = "Сложные" Тогда
А лучше в функции получайте Наименование родителя, а не самого родителя.
1C
1
2
3
4
&НаСервере
Функция ПолучитьГруппуТканиНаСервере(Ткани)
    Возврат Ткани.Родитель.Наименование;
КонецФункции
Тогда условие в вашем коде сработает
Дальше не совсем понятно с Прейскурантом
Вы параметром, похоже, передаете строку
1C
1
ПолучитьЦенуПошива2НаСервере (ТекСтрока.Наименование)
Наименование - это же строка?
А получить от функции хотите значение. Тогда, скорей всего так :
1C
1
2
3
4
&НаСервере
Функция ПолучитьЦенуПошива2НаСервере(Прейскурант)
    Возврат Справочники.Прейскуранты.НайтиПоНаименованию(Прейскурант).ЦенаСложная;
КонецФункции
0
Galina_71
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 10
23.12.2018, 20:59  [ТС] 4
polax, Спасибо огромное, заработало.
Цитата Сообщение от polax Посмотреть сообщение
Дальше не совсем понятно с Прейскурантом
Вы параметром, похоже, передаете строку
1CВыделить код
1
ПолучитьЦенуПошива2НаСервере (ТекСтрока.Наименование)
Наименование - это же строка?
А получить от функции хотите значение.
Да, у меня затыки с типами. Не совсем понимаю, что нужно писать в (ТекСтрока.____). Например,
1C
1
ТекСтрока.ЦенаПошива = ПолучитьЦенуПошива1НаСервере (ТекСтрока.Наименование);
То есть почему именно Наименование. Где про это почитать можно?
0
polax
931 / 608 / 205
Регистрация: 16.01.2015
Сообщений: 2,149
23.12.2018, 21:10 5
Galina_71, Почитайте про отладку. Многие вопросы отпадут. Научитесь видеть получаемые значения при отладке и будете понимать что надо передавать
0
Galina_71
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 10
23.12.2018, 21:15  [ТС] 6
polax, спасибо, изучу
0
23.12.2018, 21:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2018, 21:15

Ввод значения из реквизита в табличную часть
Добрый день! Есть документ " Проекты", в котором есть реквизит "Наименование". Также в данном...

Перенос значения реквизита справочника в реквизит документа
Создал документ. В нем есть реквизит коэффициент К4. Он ссылается на справочник Коэффициент К4, в...

Получить данные из реквизита (тип значения = СписокЗначений)
Подскажите, как получить данные из списка значений реквизита. Допустим у меня там есть организация,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru