|
Условие по элементу выборки 🠗 (Волшебник 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 Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |