Имя: Пароль:
1C
1С v8
Установка определенного значения реквизита в зависимости от значения предыдущего реквизита
, , ,
0 Awalon
 
22.12.18
19:28
Я новичок в 1С, учебная задача, своя конфигурация.
Имею дело со швейным производством. У каждого изделия 2 цены в зависимости из какой ткани они шьются. Есть иерархический справочник "Ткани". В нем все ткани поделены на простые и сложные. То есть если выбирается ткань простая, то в документе должна проставиться цена1, а если сложная, то цена2.
1 Awalon
 
22.12.18
19:36
Как тут можно прикрепить картинку и код, чтобы указали на ошибку?Не могу найти
2 Михаил Козлов
 
22.12.18
19:54
Событие поля ввода ткани ПриИзменении.
3 Awalon
 
22.12.18
19:57
(2) я так и делаю, но видимо в коде ошибка. Туплю, как тут его прикрепить?
4 Михаил Козлов
 
22.12.18
22:28
Сам код (без картинки) давайте.
5 Awalon
 
22.12.18
22:41
Так наверно непонятно будет

&НаКлиенте
Процедура ОсновноеИзделиеТканьПриИзменении(Элемент)
    ТекСтрока = Элемент.Родитель.ТекущиеДанные;
    ЗначениеРеквизита = ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань);
    Если ЗначениеРеквизита = "Сложные" Тогда
       ТекСтрока.ЦенаПошива = ПолучитьЦенуПошива2НаСервере (ТекСтрока.Наименование);
    КонецЕсли;
    КонецПроцедуры

&НаСервере
Функция ПолучитьГруппуТканиНаСервере(Ткани)
    Возврат Ткани.Родитель;
КонецФункции

&НаСервере
Функция ПолучитьЦенуПошива2НаСервере(Прейскурант)
    Возврат Прейскурант.ЦенаСложная;
КонецФункции

&НаСервере
Функция ПолучитьЦенуПошива1НаСервере(Прейскурант)
    Возврат Прейскурант.ЦенаПростая;
КонецФункции
6 Awalon
 
22.12.18
22:44
(4) картинки через [img][/img]?
7 RomanYS
 
22.12.18
22:47
(5)условие никогда не выполнится:
Если ЗначениеРеквизита = "Сложные" Тогда
8 Awalon
 
22.12.18
22:50
(7) а как правильно?
У меня есть иерархический справочник "Ткани". В нем все ткани поделены на простые и сложные - реквизит Родитель. Вот я и пытаюсь, если реквизит Родитель у выбранной ткани = Сложные, то другую цену ставить
9 Garykom
 
гуру
22.12.18
22:50
(7) А это зависит от того что такое "Ткани"
10 Garykom
 
гуру
22.12.18
22:51
(8) Группу лучше сохранять где то в настройках а не опираться на ее наименование.
Которое может любой юзер исправить как ему в голову взбредет, если права не обрезаны.
11 Awalon
 
22.12.18
22:53
(9) Есть док, управляемая форма. Там табличная часть с реквизитами: изделие - ссылка на справочник "прейскурант", ткань - ссылка на справочник "ткани", цена пошива - вот сюда должна встать правильная цена, в зависимости от выбранной ткани на предыдущем шаге.
12 Awalon
 
22.12.18
22:54
(10) понимаю, что надо делать по-хорошему, но кроме меня эту конфу никто не увидит. Я просто студент
13 arsik
 
гуру
22.12.18
22:58
(12) Начни с отладчика. Он в 1С запускается просто. Там увидишь все косяки свои.
14 Awalon
 
22.12.18
23:03
(13) Вы имеете в виду поставить точку остановки?
15 RomanYS
 
22.12.18
23:05
(8) правильно сравнивать значения одного типа.
Следовательно надо либо заменить "Сложные" на ссылку либо привести твою ссылку к строке. Для реальных задач правильным является первый вариант.
16 Garykom
 
гуру
22.12.18
23:11
(15) Ему сначала теорию бы подучить, чтоб не пытался изобразить на ЯП 1С нечто вроде C#, думая что типа строка это объект и можно "ТекСтрока.Наименование.ЦенаПростая"
17 Awalon
 
22.12.18
23:15
Да, в теории у меня проблема. Объясните, пожалуйста, как добраться до реквизита справочника и, исходя из его значения, уже выбрать цену. В чем копать хотя бы?
18 Garykom
 
гуру
22.12.18
23:19
Бросай это гиблое дело пока не поздно и займись чем нибудь другим.
Например лопатой копать намного удобнее.
19 Awalon
 
22.12.18
23:24
(18) А если серьезно))
20 Garykom
 
гуру
22.12.18
23:36
Я совершенно серьезно, вакансий рабочих намного больше чем вакансий программистов 1С.

Другой пример сложности того что ты задумал (стать программистом).

Вот на гитаре или фортепьяно играть умеешь? Так чтобы тебе за это деньги платили и на жизнь хватало?
Это намного проще чем выучить 1С и программирование.
21 Awalon
 
22.12.18
23:38
(20) без сарказма у меня этой штуки 1 семестр в универе, я вообще не на программиста учусь. Мне просто эту задачу решить надо. Что я делаю не так?
22 Garykom
 
гуру
22.12.18
23:40
(21) Без сарказма если то или поменять универ/факультет на тот где нет подобных заданий.

Или просто заплатить кому то чтобы сделали это за тебя.

Насколько я знаю это сча очень популярная тактика "просто заплатить" если своих мозгов не хватает.
23 Awalon
 
22.12.18
23:42
(22) вы же знаете, просто мучайте меня
24 Garykom
 
гуру
22.12.18
23:43
(23) Т.е. ты просто не хочешь платить да?
25 Awalon
 
22.12.18
23:45
(24) Я верю в свои силы и в бескорыстие. И хочу разобраться
26 Garykom
 
гуру
22.12.18
23:51
Хочешь сказать что вам выдали такое учебное задание не выдав предварительно требуемый для выполнения теоретический материал и не порешав тестовые подобные задания?

ВУЗ и преподавателя не назовешь?
27 Awalon
 
22.12.18
23:59
(26) теория по Радченко
Понимаю, что здесь ошибка, но не знаю, как правильно обратиться к родителю. Или вообще другой подход нужен



ЗначениеРеквизита = ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань);
    Если ЗначениеРеквизита = "Сложные" Тогда
28 hhhh
 
23.12.18
00:35
(27) ну у тебя разные типы тут :

ЗначениеРеквизита = это справочник Ткани,

"Сложные" = это вообще текст.

Какого хрена ты сравниваешь справочник с куском текста?
29 Мимохожий Однако
 
23.12.18
10:14
(25) Запустить в режиме отладчика удалось?
30 Михаил Козлов
 
23.12.18
10:32
(27) Если ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань) возвращает ссылку на группу нужного уровня.
то попробуйте ЗначениеРеквизита.Наименование = "Сложные".
Я бы еще посоветовал в отладчике посмотреть значение параметра
ТекСтрока.Ткань - ссылка ли это на справочник.
31 hhhh
 
23.12.18
10:45
(30) на клиенте не получится  ЗначениеРеквизита.Наименование. Это опять на сервер надо.
32 mastodont
 
23.12.18
11:04
(31) да тут по хорошему вообще нет смысла гонять между клиентом и сервером...
Можно все проверить на сервере и вернуть цену...
33 Garykom
 
гуру
23.12.18
11:48
(32) Еще скажи что нельзя цену на сервере поменять блин
34 mastodont
 
23.12.18
12:23
(33) чего? ты о чем?
35 Awalon
 
23.12.18
13:03
(30) ТекСтрока.Ткань правильно возвращает группу ткани.
36 mastodont
 
23.12.18
13:07
(0) ну ты как, разобрался?
37 Awalon
 
23.12.18
13:46
(36) нет, даже если проверять все на сервере, не понимаю, как достать реквизит Родитель выбранной ткани
38 hhhh
 
23.12.18
13:48
(37) ВыбраннаяТкань.Родитель
39 Lazy Stranger
 
23.12.18
13:59
&НаСервере
Функция ПолучитьГруппуТканиНаСервере(Ткани)
    Возврат Ткани.Родитель.Наименование;
КонецФункции
40 Awalon
 
23.12.18
14:06
(38) так и делаю. А как дальше сравнить? Если родитель = Сложные, то цена одна, если родитель = простые, то цена другая
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн