Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

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

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

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

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

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

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

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

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

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

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

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

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



ЗначениеРеквизита = ПолучитьГруппуТканиНаСервере (ТекСтрока.Ткань);
    Если ЗначениеРеквизита = "Сложные" Тогда

   hhhh
 
28 - 23.12.18 - 00:35
(27) ну у тебя разные типы тут :

ЗначениеРеквизита = это справочник Ткани,
"Сложные" = это вообще текст. 

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует