|
УТ 10, заполнение реквизита | ☑ | ||
---|---|---|---|---|
0
dvrk
29.12.20
✎
13:53
|
Привет, просят сделать: если выбран склад 1 или 2 или 3 ил 4 или 5 тогда реквизит1(элемент справочника) нужно конкретный подставить
я хочу сделать так: в обработке перед записью склад1 = спрачоники.склады.найтипокоду(код) склад2 = спрачоники.склады.найтипокоду(код) склад3 = спрачоники.склады.найтипокоду(код) склад4 = спрачоники.склады.найтипокоду(код) склад5 = спрачоники.склады.найтипокоду(код) реквизит = справочники.справочник1.найтипокоду(код) в процедуре ПередЗаписью если этаформа.документобъект.склад = склад1 или .... тогда этаформа.документобъект.реквизит1 = реквизит конецесли или что то не учел ? |
|||
1
Йохохо
29.12.20
✎
13:56
|
если "просят" то это надо в форме
|
|||
2
dvrk
29.12.20
✎
13:57
|
(1) я имел ввиду модуль формы "ПередЗаписью"
|
|||
3
del123
29.12.20
✎
13:59
|
А если будут просить каждый месяц по складу добавлять, каждый месяц переписывать будешь код?
|
|||
4
ДенисЧ
29.12.20
✎
14:01
|
(3) А тебе жалко?
|
|||
5
ДенисЧ
29.12.20
✎
14:02
|
(0) Сделай у склада реквизит и, если он заполнен - копируй его в документ. И лучше не перед записью, а при выборе склада
|
|||
6
del123
29.12.20
✎
14:02
|
(4) да мне то нет)
|
|||
7
dvrk
29.12.20
✎
14:04
|
(5) нельзя реквизит новый добавлять
|
|||
8
dvrk
29.12.20
✎
14:05
|
(5) делается это из-за того, что забывают Реквизит1 заполнить, заполнять его нужно только если выбраны конкретные склады
|
|||
9
dvrk
29.12.20
✎
14:06
|
(8) + склады известны и добавляться/убавляться их кол-во не будет
|
|||
10
ДенисЧ
29.12.20
✎
14:07
|
(7) Допсвойство склада...
У ут10 вроде свойства к складу можно ... |
|||
11
mistеr
29.12.20
✎
14:08
|
(8) Ну так сделай проверку.
Ну и при изменении склада можно заполнять. |
|||
12
dvrk
29.12.20
✎
14:09
|
(11) а в (0) не проверка ?
|
|||
13
mistеr
29.12.20
✎
14:21
|
(12) Проверка это если Реквизит1 не заполнен, то не давать проводить.
|
|||
14
dvrk
29.12.20
✎
14:21
|
(13) его не всегда нужно заполнять..
|
|||
15
dvrk
29.12.20
✎
14:23
|
(13) Если склад = (склады из моего списка) тогда нужно заполнить реквизит1 конкретным значением, в остальных случаях не нужна проверка
|
|||
16
dvrk
29.12.20
✎
14:30
|
Я просто спрашиваю правильно ли я в (0) написал или можно как то красивее без найтипокоду тыщу раз ?
|
|||
17
ДенисЧ
29.12.20
✎
14:31
|
(16) Правильней будет как в (5) или (10)
|
|||
18
dvrk
29.12.20
✎
14:33
|
(17) лан, поищу доп свойства, спасибо
|
|||
19
dvrk
29.12.20
✎
14:55
|
Ммм, доп свойства я нашел, а как к нему обратиться програмно?
Ну т.е. я хочу что-то типа Если склад.допсвойство = моёсвойство тогда реквизит = нужныйэлементсправочника конеццикла |
|||
20
dvrk
29.12.20
✎
14:58
|
Ну т.е. не допсвойство а РС Значения свойств объектов
|
|||
21
dvrk
29.12.20
✎
15:10
|
Или это запросом склады получить надо ?
|
|||
22
ДенисЧ
29.12.20
✎
15:12
|
выбрать значение
из регистрСведений.ЗначенияСвойствОбъектов где объект = &склад и свойство = &НужноеСвойствоРеквизитДокументаДляСклада И уже из запроса читай. Или, если хочешь какашкокода - создай набор записей, задай ему отборы, прочитай... |
|||
23
dvrk
29.12.20
✎
15:16
|
(22) спасибо!
|
|||
24
hhhh
29.12.20
✎
15:33
|
"спрачоники" - это что?
|
|||
25
dvrk
30.12.20
✎
06:34
|
(24) справочники )
|
|||
26
dvrk
30.12.20
✎
08:58
|
Вопрос ещё, я сделал "ПередЗаписью" проверку, теперь, если склад из моего списка, то реквизит заполняется, а как сделать чтобы если склад поменяли на не из списка, то очищалось, но если сами реквизит заполнили, то не очищалось
|
|||
27
ДенисЧ
30.12.20
✎
08:59
|
(26) Проверку поставить Индира не позволяет?
|
|||
28
dvrk
30.12.20
✎
08:59
|
(27) я не совсем понимаю как
|
|||
29
dvrk
30.12.20
✎
09:00
|
(27) ну т.е. я поставлю проверку если НЕ нужный склад, то очистить реквизит, но если они выберут другой склад сами, то очистится же
|
|||
30
dvrk
30.12.20
✎
09:01
|
(29) т.е. выбрали склад не из списка, заполнили реквизит, а он из-за проверки очистится
|
|||
31
dvrk
30.12.20
✎
09:03
|
Ааа, всё, туплю, спасибо
|
|||
32
Ёпрст
30.12.20
✎
09:23
|
(26) делай это не при записи а в ПриИзменении реквизита склад
|
|||
33
ДенисЧ
30.12.20
✎
09:27
|
(32) Я ему ещё в (5) это сказал... Но это, похоже, житель дальнего севера...
|
|||
34
dvrk
30.12.20
✎
09:41
|
(32) (33) поч?
|
|||
35
ДенисЧ
30.12.20
✎
09:41
|
(34) пот!
|
|||
36
dvrk
30.12.20
✎
09:49
|
Ну я то сделаю, просто не понимаю почему так лучше
|
|||
37
dvrk
31.12.20
✎
10:31
|
Извиняюсь, ещё вопрос, я неверно что-то делаю? Получил в запросе нужные склады
выгрузил затем обхожу таблицу и сравниваю значение склада на форме с результатом запроса чего то я видимо не понимаю и неверно сделал |
|||
38
dvrk
31.12.20
✎
10:32
|
Результат = Запрос.Выполнить().Выгрузить();
Для каждого МоиСклады из Результат цикл Если ЭтаФорма.ДокументОбъект.Склад = МоиСклады.Объект Тогда ЭтаФорма.ДокументОбъект.Реквизит1 = РеквизитНайденныйМоКоду КонецЕсли; КонецЦикла; |
|||
39
Ёпрст
31.12.20
✎
10:32
|
(37) больше кода
|
|||
40
dvrk
31.12.20
✎
10:32
|
Как это срабатывает?
Если ЭтаФорма.ДокументОбъект.Склад = МоиСклады.Объект как сравнивает склад, там же не 1, который выбран на форме, а список складов |
|||
41
dvrk
31.12.20
✎
10:33
|
(39) да это весь код, до него запрос только
|
|||
42
dvrk
31.12.20
✎
10:34
|
(39) в Результат у меня 9 складов
|
|||
43
Ёпрст
31.12.20
✎
10:34
|
(38)
1.покажи запрос 2. это обычные формы или УФ ? |
|||
44
dvrk
31.12.20
✎
10:34
|
(43) это обычные формы
"ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Объект |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство.Наименование = ""ТестовоеСвойство"""; |
|||
45
dvrk
31.12.20
✎
10:39
|
У меня наверное больше вопрос как он сравнивает склады в Для каждого и в Если
Ну т.е. он сравнивает пока не обойдёт всю таблицу и если в таблице условие выполняется, то заполняет мой реквизит, верно ? |
|||
46
Ёпрст
31.12.20
✎
10:43
|
(44) На вот, занимайся
Процедура СкладПриИзменении(Элемент) Если Не ЗначениеЗаполнено(Склад) Тогда ТвойРеквизит = Неопределено; Возврат; КонецЕсли; Запрос = Новый Запрос(" |ВЫБРАТЬ | СвойствоСклада.Значение КАК ТвойРеквизит, | ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК СвойствоСклада | ГДЕ | СвойствоСклада.Объект = &Склад | И СвойствоСклада.Свойство = &ТвоёСвойство"); Запрос.УстановитьПараметр("ТвоёСвойство",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ТвоёНаименованиеСвойства")); Запрос.УстановитьПараметр("Склад",Склад); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ТвойРеквизит = Выборка.ТвойРеквизит; КонецЕсли; КонецПроцедуры |
|||
47
ДенисЧ
31.12.20
✎
10:43
|
(45) Хочешь продам тебе неэкселюзивное право использовать оператор Прервать в цикле?
Недорого, 10евро в месяц... |
|||
48
Ёпрст
31.12.20
✎
10:44
|
Ну а твой код - в топку.
|
|||
49
dvrk
31.12.20
✎
10:46
|
Да я учусь, чо вы...
спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |