|
Установка флажка в зависимости от состояния | ☑ | ||
---|---|---|---|---|
0
miniconda
11.11.19
✎
19:43
|
У меня есть БП МойБизнесПроцесс, в котором есть много заявок, связанных с закупками. У каждой заявки есть форма с реквизитами "Номер заявки" и флажком "Оплачено".
Мне нужно сделать так, чтобы при нажатии на кнопку на внешней обработке проверялись все заявки у БП, делался запрос в 1С Бухгалтерию (реализовано уже) и ставились флажки, если в Бухгалтерии в подобных заявках статус "Оплачено". Но есть одно НО! Мне сказали, что делать запрос внутри цикла = мовитон (у меня в голове было так: я бегу по заявкам с помощью цикла, если "Номер заявки" заполнен, то делаю запрос), поэтому надо как-то иначе. Но что-то не приходит в голову как реализовать, чтобы было по православному :)) Пока что реализовал запрос, в котором получаю ТЗ с данными конкретной задачи. ТЗ = Новый ТаблицаЗначений;
|
|||
1
Волшебник
11.11.19
✎
19:50
|
>> СтрЗаменить(ТекстЗапроса,"&Номер","З-21842");
это тоже моветон |
|||
2
miniconda
11.11.19
✎
20:29
|
(1) возможно, но если опустить этот момент, как можно реализовать задуманное?
|
|||
3
Волшебник
11.11.19
✎
20:31
|
(2) сделайте 1 запрос на все данные за пределами цикла
|
|||
4
miniconda
11.11.19
✎
20:40
|
(3) и потом уже сравнивать по Номеру заявки в результате запроса искать Состояние?
Вероятно, этот запрос будет выполняться довольно долго, и это не лучшая идея |
|||
5
ДенисЧ
11.11.19
✎
20:57
|
(4) Прежде чем считать вероятности - попробуй.
|
|||
6
ДенисЧ
11.11.19
✎
20:58
|
И да, вот это
| ДокументБух.Номер = ""&Номер"" ... В приличном обществе за такое бьют канделябром. В неприличном - этот канделябр запихивают в... |
|||
7
miniconda
11.11.19
✎
22:38
|
(5) да я вот попробовал, в самом деле если брать все, то очень долго.
Да и насчет ""&Номер"" - это же я чисто проверял для конкретного примера, а мне надо пройтись по всем( |
|||
8
Радим1987
11.11.19
✎
22:44
|
Я обычно такие вещи делаю через схемы запроса
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ПервичныйАкт.Ссылка КАК Ссылка |ПОМЕСТИТЬ ВТ |ИЗ | Документ.кс_ПервичныйАкт КАК ПервичныйАкт |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Ссылка КАК Ссылка |ИЗ | ВТ КАК ВТ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ.Ссылка) КАК КОЛИЧЕСТВО |ИЗ | ВТ КАК ВТ"; Если КоличествоЭлементов > 0 Тогда СхемаЗапроса = Новый СхемаЗапроса; СхемаЗапроса.УстановитьТекстЗапроса(Запрос.Текст); Оператор = СхемаЗапроса.ПакетЗапросов[0].Операторы[0]; Оператор.Отбор.Добавить("ПервичныйАкт.Ссылка В (&Список)"); Запрос.УстановитьПараметр("Список",СтруктураПараметров.Список); Запрос.Текст = СхемаЗапроса.ПолучитьТекстЗапроса(); КонецЕсли; МассивРезультатовЗапроса = Запрос.ВыполнитьПакет(); |
|||
9
Сияющий в темноте
11.11.19
✎
23:32
|
Выбрать все заявки бизнес-процесса,соединить с таблицей с данными оплаты и все.
Но,судя по СтрЗамегить, отойдите от 1с от греха подальше. |
|||
10
miniconda
12.11.19
✎
19:42
|
(9) не могли бы вы проконсультировать меня по этому вопросу, совсем зеленый еще в 1С, почему это плохо?)
|
|||
11
DrZombi
гуру
12.11.19
✎
20:13
|
(10) Бизнес процесс, тоже таблица, как и документ, как и справочник, как и регистр.
Это все таблицы, но своеобразной структуры и содержит стандартный набор реквизитов и так же дополнительный. Используя соответствующие связи с таблицами, вы получите нужный результат, ОДНИМ запросом. ...Ваш Вопрос: "Как мне это сделать?".... ...Ответ: А я что вижу ваши данные?... как вы там это расположили. Придется вам самим разбирать. :) |
|||
12
miniconda
12.11.19
✎
21:02
|
(11) А что конкретно вам хотелось бы увидеть? Могу предоставить, если будете так любезны что-то посоветовать или помочь)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |