Имя: Пароль:
1C
 
Условие по элементу выборки
🠗 (Волшебник 06.03.2024 21:36)
,
0 SeniorJunior
 
05.03.24
23:43
Доброго всем вечера!
Имеется запрос:
ВЫБРАТЬ

НачислениеЗарплатыНачисления.Ссылка.МесяцНачисления КАК МесяцНачисления,
НачислениеЗарплатыНачисления.Ссылка.Дата КАК Дата,
НачислениеЗарплатыНачисления.Сотрудник КАК Сотрудник,
НачислениеЗарплаты.Организация КАК Организация
ИЗ

Документ.НачислениеЗарплаты.Начисления КАК НачислениеЗарплатыНачисления

ГДЕ
НачислениеЗарплатыНачисления.Ссылка = &Ссылка

И далее суть в том, что когда выбираем необходимый документ, из него необходимо получить организацию и в зависимости от того какая организация, выполнить определенные действия. Т.е. в моем понимании должно выглядеть примерно так:
РезультатЗапроса = Запрос.Выполнить();
    
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
   Если Выборка.Организация = "Ромашка ООО" Тогда
   ...................
   ИначеЕсли Выборка.Организация = "Роза ООО" Тогда
   ...................
и т.д. Но так выдает ошибку.
Отладчик показывает, что Выборка.Организация - Справочникссылка.организации.
Нид хелп
1 Builder
 
06.03.24
00:10
жжжесть :)
Ну тогда уж как то так:
Если Выборка.Организация.Наименование = "Ромашка ООО" Тогда
....
или лучше так уж...
Если Выборка.Организация.Код = "0001" Тогда

А лучше освоить КОГДА в запросе
2 Garykom
 
гуру
06.03.24
00:32
НачислениеЗарплаты.Организация.Наименование КАК ОрганизацияНаименование
или
НачислениеЗарплаты.Организация.Код КАК ОрганизацияКод

Если Выборка.ОрганизацияНаименование = "Ромашка ООО" Тогда
или
Если Выборка.ОрганизацияКод = "0001" Тогда

Но да, лучше https://www.koderline.ru/expert/narabotki/article-vybor-kogda-togda-v-konfiguratsii-sistemy-1s-predpriyatie/
3 Garykom
 
гуру
06.03.24
00:46
(2)+ суть что намного быстрей вытащить сразу результат запроса Строку
и ее сравнивать не дергая Наименование или Код по ссылке справочника, да еще в цикле

А через КОГДА можно заполнение полей в запросе (или условий ГДЕ) сделать вариативным по нужному условию
Например привязаться к некоему реквизиту Организации
4 Garykom
 
гуру
06.03.24
00:42
(3)+ И да желательно сокращать количество обращений через "."  запросах

Используя ЛЕВОЕ СОЕДИНЕНИЕ например:
ВЫБРАТЬ
 Документ.МесяцНачисления КАК МесяцНачисления,
 Документ.Дата КАК Дата,
 Начисление.Сотрудник КАК Сотрудник,
 Организация.Ссылка КАК Организация,
 Организация.Код КАК ОрганизацияКод,
 Организация.Наименование КАК ОрганизацияНаименование
ИЗ
 Документ.НачислениеЗарплаты.Начисления КАК Начисление
ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеЗарплаты КАК Документ
ПО Начисление.Ссылка = Документ.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организация
ПО Документ.Организация = Организация.Ссылка
ГДЕ
 Начисление.Ссылка = &Ссылка
5 Ненавижу 1С
 
гуру
06.03.24
08:22
(0) для чего такие условия вы делаете?
6 Волшебник
 
06.03.24
08:25
(4) Лучше точки, чем левые соединения. С точками запрос лучше читается
7 Ненавижу 1С
 
гуру
06.03.24
08:40
(6) согласен, но это пока реквизит связи не составного типа
8 chelentano
 
06.03.24
08:48
(0) Какую ошибку то выдаёт?
9 Garykom
 
гуру
06.03.24
11:04
(6) Внутри запросов точки один фиг разворачиваются в неявные соединения

(7) угу
https://its.1c.ru/db/metod8dev/content/2662/hdoc
и проще запрос читается/понимается/допиливается когда много полей
10 SeniorJunior
 
06.03.24
15:34
(5) Это для макета отчета, хочу чтоб в зависимости от компании указанной в выбранном документе была соответствующая шапка макета. Когда загоняю конструкцию в цикл, тогда все работает, но шапку печатает несколько раз. Возможно есть вариант сделать это без цикла?
11 Волшебник
 
06.03.24
15:38
(9) Один фиг, но точки лучше
12 Builder
 
06.03.24
15:38
(10) А цикл зачем?
Ну и начни с алгоритма на бумаге, похоже проблема в этом.
13 SeniorJunior
 
06.03.24
15:41
(12) По другому не понимаю как из запроса получить данные и обратиться/использовать один конкретный реквизит.
14 Волшебник
 
06.03.24
15:45
У Вас запрос по одному документу, где организация в шапке, значит условие будет такое:
Если ДокСсылка.Организация = Орг1 Тогда
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший