Имя: Пароль:
1C
1С v8
СКД произвольное выражение
0 bfss-732
 
10.06.21
13:18
Всем привет!

СКД есть 4  условиия при которых суммы должны сложиться в одну и выйти под название ОКЛАД. делаю так:

ИНАЧЕ ВЫБОР
КОГДА
                                          ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ОсновнаяЗаработнаяПлата)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ПрочаяЗаработнаяПлата)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2РезервыОтпускаВознаграждения)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт1 В ИЕРАРХИИ (&СубконтоКт1Год)
                                                        И ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОценочныеОбязательстваПоВознаграждениямРаботникам)
                                                        И ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда)
ТОГДА "ОКЛАД"
Правильно не выводится. С "И/ИЛИ" как только не забавлялся(((
Какие есть варианты еще?
1 1Сергей
 
10.06.21
13:24
Использовать скобки не предлагали ещё?
2 bfss-732
 
10.06.21
13:26
(1) ))) научи друг
3 1Сергей
 
10.06.21
13:27
хоспаде....


ИНАЧЕ ВЫБОР
КОГДА
                                          ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ОсновнаяЗаработнаяПлата)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ПрочаяЗаработнаяПлата)
                                                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2РезервыОтпускаВознаграждения)
                                                        (ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт1 В ИЕРАРХИИ (&СубконтоКт1Год)
                                                        И ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОценочныеОбязательстваПоВознаграждениямРаботникам)
                                                        И ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда))
ТОГДА "ОКЛАД"
4 1Сергей
 
10.06.21
13:28
ой, не туда первую скобку впендюрил. Но, Вы должны понять
5 bfss-732
 
10.06.21
13:29
(4) да я ваще с СКД на "Ваше Величество" )))
6 bfss-732
 
10.06.21
13:30
Запросом всевытащил еще на прошлой недели, а с СКД воюю до сих пор
7 bfss-732
 
10.06.21
13:31
Хотя это и есть запрос
8 1Сергей
 
10.06.21
13:31
(5) тут не СКД, тут надо понять при каких значения СчетДт какие субконто должны быть
9 1Сергей
 
10.06.21
13:33
Оценочные обязательства по вознаграждениям работникам - это же группа счетов вроде. Не?
10 bfss-732
 
10.06.21
13:34
(8) На бумаге все нарисовал, понимание есть 100%, как это понимание в запрос отразить не знаю
11 1Сергей
 
10.06.21
13:35
(10) хоспадя...

КОГДА
   (СчетКт = ... И СубконтоДт2 в ...)
   ИЛИ (СчетКт = ... И СубконтоДт2 в ...)
   ИЛИ (СчетКт = ... И СубконтоДт2 в ...)
   ...
12 bfss-732
 
10.06.21
13:37
СчКт90.01.1 +СубконотоДт2(СтатьяРасходов1)
СчКт70      +СубконотоДт2(СтатьяРасходов2)
СчКт70      +СубконотоДт2(СтатьяРасходов3)
СчКт90.01.3 +СубконотоДт2(СтатьяРасходов3) + СубконтоКт1 (Виды резервов и оценочных обязательств1)
СчКт90.01.3 +СубконотоДт2(СтатьяРасходов3) + СубконтоКт1 (Виды резервов и оценочных обязательств2)


Вот мой оклад
13 1Сергей
 
10.06.21
13:39
(12) ну вот по лекалу в (11)
14 bfss-732
 
10.06.21
13:39
(11) в двух словах, чем от моего примера отличается
15 1Сергей
 
10.06.21
13:40
(14) сначала выполняются операции И, потом ИЛИ
16 1Сергей
 
10.06.21
13:40
поэтому нужны скобки
17 bfss-732
 
10.06.21
13:41
(16) ставлю скобки, захожу в конструктор, захожу в это выражение, а он их стирает. Это что за номер?))
18 Малыш Джон
 
10.06.21
13:43
(17) значит и без скобок в таком порядке считает
19 bfss-732
 
10.06.21
13:44
есть еще варианты?
20 Малыш Джон
 
10.06.21
13:44
ну и да
Отделять логические И от логических ИЛИ скобкам смысла большого нет
21 bfss-732
 
10.06.21
13:45
(20) 100%, уже убедился
22 Малыш Джон
 
10.06.21
13:45
(19) дофига

проверить логику условия на конкретных примерах
проверить те ли параметры передаются в запрос
проверить в консоли СКД не коверкает ли СКД запрос
23 bfss-732
 
10.06.21
13:47
СчКт90.01.1 +СубконотоДт2(СтатьяРасходов1)
СчКт70      +СубконотоДт2(СтатьяРасходов2)
СчКт70      +СубконотоДт2(СтатьяРасходов3)
СчКт90.01.3 +СубконотоДт2(СтатьяРасходов4) + СубконтоКт1 (Виды резервов и оценочных обязательств1)
СчКт90.01.3 +СубконотоДт2(СтатьяРасходов4) + СубконтоКт1 (Виды резервов и оценочных обязательств2)


Вот мой оклад

Так правильнее
24 Малыш Джон
 
10.06.21
13:48
+(22) начать с проверки частичного условия, постепенно добавляя по одному
Переделать на конструкцию вида
ВЫБОР
   КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ) ТОГДА "ОКЛАД"
   КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ОсновнаяЗаработнаяПлата) ТОГДА "ОКЛАД"
   КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ (&СубконтоДт2ОсновнаяЗаработнаяПлата) ТОГДА "ОКЛАД"
...
   ИНАЧЕ "НЕ ОКЛАД"
КОНЕЦ
25 Малыш Джон
 
10.06.21
13:49
а то понавертят десятиэтажных условий,
а потом "помогите, 1С глючит, условие не отрабатывает!"
26 youalex
 
10.06.21
13:49
Я может не понял, но у тебя же вроде одно поле ХозрасчетныйДвиженияССубконто.СубконтоДт2
Т.е можно написать ХозрасчетныйДвиженияССубконто.СубконтоДт2 В ИЕРАРХИИ(&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ, &СубконтоДт2ОсновнаяЗаработнаяПлата, ...)
27 1Сергей
 
10.06.21
13:55
(23) твой вариант со скобками мы не увидим, да?
28 bfss-732
 
10.06.21
13:55
(26) Красивее, но тоже самое выводит
29 bfss-732
 
10.06.21
13:56
(27) так они не работают + еще пропадают (20) Малыш Джон тоже считает прошлый век
30 1Сергей
 
10.06.21
13:56
(29) ок. Гадаем дальше
31 bfss-732
 
10.06.21
13:56
(27) делал, три раза
32 youalex
 
10.06.21
14:00
Может проблема вообще в значениях параметров/данных, а не в запросе
33 Малыш Джон
 
10.06.21
14:00
(29) >>Малыш Джон тоже считает прошлый век

Это не я так считаю, это ещё до меня так считали.
34 Малыш Джон
 
10.06.21
14:03
(31) вот тебе намек: как ты думаешь что будет результатом вот этого вот условия -
   ... ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОценочныеОбязательстваПоВознаграждениямРаботникам)
         И ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда) ?
35 bfss-732
 
10.06.21
14:14
(34) при совпадении двух условий оно выполнится
36 1Сергей
 
10.06.21
14:16
(35) счетКт не может быть одновременно 96-ым и 70-ым :)
37 bfss-732
 
10.06.21
14:19
(36) Спасибо! Глаза замылились. Ща буду все переправлять
38 bfss-732
 
10.06.21
14:23
(36)
это для каждого счета свой параметр и его заполнять?
39 1Сергей
 
10.06.21
14:25
(38) так нагляднее и проще
40 bfss-732
 
10.06.21
14:31
(39) буду делать, завтра отпишусь
41 bfss-732
 
10.06.21
15:19
та же фигня(((
42 bfss-732
 
10.06.21
16:05
Проблема в том, что для каждого условия нужна нужны уникальные(не повторяющиеся) параметры
43 1Сергей
 
10.06.21
16:43
(42) Всё ещё не вижу проблемы