|
Список значений или структура? | ☑ | ||
---|---|---|---|---|
0
DenYuliya
05.04.18
✎
13:10
|
День добрый. Такой вопрос, "ля первого класса"...
Не знаю, что правильно создавать в данной ситуации - список значений, структуру, массив, еще варианты? Дано: Есть ТЧ формы, на нее вытянуты запросом 2 колонки: ПрефиксДок и НовыйКонтрагент. Есть определенное соответствие, какому Префиксу соответствует какой контрагент (порядка 30 соответствий). Создаю Структуру(??) СтруктураКонтр = Новый Структура(); Далее в цикле обхожу РезультатЗапроса: Для Каждой Стр Из РезультатЗапроса Цикл СтруктураКонтр.Добавить("ПрефиксДок", Стр.ПрефиксДок); Если ПрефиксДок = "А" Тогда НовыйКонтрагент = справочники.Контрагенты.НайтиПоКоду("1"); ИначеЕсли ПрефиксДок = "б" Тогда НовыйКонтрагент = справочники.Контрагенты.НайтиПоКоду("2"); ИначеЕсли ... СтруктураКонтр.Добавить("НовыйКонтрагент ", НовыйКонтрагент); КонецЕсли; Дальше выгружаю в ТЧ данные из колонки "НовыйКонтрагент". Как-то так. Но мне этот вариант кажется очень кривым. Во-первых мне нужна только одна колонка, "НовыйКонтрагент". Колонка "ПрефиксДок" мне нужна только для определения связки "Префикс - Контрагент". И во-вторых мне не нравится перебор "Если...Иначе...Иначе" в Цикле. Можете подсказать, как это правильно сделать? В типовых не нашла сходу похожего, своих мозгов не хватает.... |
|||
1
shuhard
05.04.18
✎
13:12
|
(0) Рг сведений и хранение правил поиска в польской нотации
|
|||
2
DenYuliya
05.04.18
✎
13:13
|
(1) что рег сведений? Новый регистр под эту задачу, естественно, создаваться не будет.
|
|||
3
AneJIbcuH
05.04.18
✎
13:15
|
(0) Перебор "Если..Иначе.." не так трашен в цикле, как твоё: НовыйКонтрагент = справочники.Контрагенты.НайтиПоКоду("1");
Задача как-то непонятно поставлена. "Есть определенное соответствие, какому Префиксу соответствует какой контрагент (порядка 30 соответствий)." - Это постоянное соответствие? Если да, то в (1) |
|||
4
DenYuliya
05.04.18
✎
13:20
|
(3) Позвонил бух, попросил сделать обработку, переделывающую один документ в другой.
С условием "Если в номере документа1 префикс "А", то документ2 делаем на контрагента "ООО Ромашка". А если в номере документа1 префикс "Б", то документ2 делаем на контрагента "ООО Пупырышки". Таких соответствий порядка 30, поэтому в цикле 30 раз писать "если..Иначе...Иначе" - как-то криво. Конфа типовая, задача разовая, поэтому ни о каком создание новых объектов речи (РС в частности) не идет. |
|||
5
AneJIbcuH
05.04.18
✎
13:25
|
(4) Для этого создай Соответствие!
Соответствие = Новый Соответствие(); Заполни соответствие, запросом или ещё как: Соответствие.Вставить(ТвойПрефикс1,ТвойКонтрагент1); Далее контрагента получаешь так: Для каждого Префикс Из Префиксы Цикл НужныйКонтрагент = Соответствие[Префикс ]; Если НужныйКонтрагент = Неопределено Тогда Сообщить("По префиксу " + Префикс + " не найден контрагент"); Продолжить; //далее алгоритм КонецЦикла |
|||
6
VS-1976
05.04.18
✎
13:26
|
Сделай примерно так:
оЗапрос = Новый Запрос( "ВЫБРАТЬ "А" КАК Префикс, "00001" КАК Код ПОМЕСТИТЬ тзКонтрагенты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Б" КАК Префикс, "00002" КАК Код ... ; ВЫБРАТЬ тзКонтрагенты.Префикс, спрКонтрагенты.Ссылка КАК Контрагент ИЗ тзКонтрагенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК спрКонтрагенты ПО спрКонтрагенты.Код = тзКонтрагенты.Код ); пКонтрагенты = оЗапрос.Выполнить().Выгрузить(); пКонтрагенты.Индексы.Добавить( "Префикс" ); |
|||
7
DenYuliya
05.04.18
✎
13:27
|
Что-то я сижу думаю, наверно все-таки СписокЗначений тут уместнее будет, чем Структура, т.к. мне же в итоге одна колонка нужна будет.
То есть можно так сделать: Если РезультатЗапроса.Префикс = "А" Тогда СписокЗначений.Добавить("НовКонтр", Справочники.Контрагенты.НайтиПокоду("1")); ИначеЕсли РезультатЗапроса.Префикс = "Б" Тогда СписокЗначений.Добавить("НовКонтр", Справочники.Контрагенты.НайтиПокоду("2")); ИначеЕсли ..... КонецЕсли; Или же делать некое соответствие (в Структуре?) КолонкаПрефикс КолонкаНовКонтрагент "А" ООО "Ромашка" "Б" ООО "Пупырышка" "В" ООО "Грибочек" "Г" ООО "Рога и Копыта" Как правильнее? |
|||
8
DenYuliya
05.04.18
✎
13:28
|
(5) спасибо! Попробую... Меня Соответствие тоже заинтересовало, но оно почему-то редко используется, и я продолжила думать над более привычными СЗ и Структура
|
|||
9
DenYuliya
05.04.18
✎
13:29
|
(6) хм, кстати хорошая идея, что-то я даже не подумала, что все это можно в запросе обойти! А ведь точно!
|
|||
10
DenYuliya
05.04.18
✎
15:41
|
(6) Думаю над 2 вариантами решения задачи через запрос:
1)сделать 3 Временные таблицы: ВТ_Услуги - выборка из док. РеализацияТоваровИУслуг, ВТ_Контрагенты - выборка из спр. Контрагенты, ВТ_Префиксы - создаю описание ВТ, туда запихиваю Массив &МассивПрефиксы (просто таблица с 1 колонкой вариантов префиксов), потом это все левым соединением соединяю. 2) Второй вариант, ВТ_Префиксы не создавать, в ВТ_Услуги сразу задавать условие "Где Номер Подобно &МассивПрефиксов". В результате в ВТ_Услуги сразу будут отобраны только те документы, которые соответствуют массиву префиксов. Потом отобранные документы соединять левым соединением с ВТ_Контрагенты (как-то наложив условие, минуя 30 "Если" Второй вариант получше будет? |
|||
11
DenYuliya
05.04.18
✎
16:33
|
В продолжение (10), я попыталась сделать свой вариант 2, но получилась какая-то ерунда. Не работает, зараза:
МассивПерспектива = Новый Массив; МассивПерспектива.Добавить("ВО32"); МассивПерспектива.Добавить("Л11"); МассивПерспектива.Добавить("Б8"); МассивПерспектива.Добавить("Н148"); МассивПерспектива.Добавить("К4"); МассивПерспектива.Добавить("П72"); МассивПерспектива.Добавить("Р"); МассивПозитив = Новый Массив; МассивПозитив.Добавить("С24"); МассивПозитив.Добавить("Т27"); МассивПозитив.Добавить("Н1"); МассивПозитив.Добавить("Б49"); МассивПозитив.Добавить("ВБР"); МассивПозитив.Добавить("М163"); МассивПозитив.Добавить("ЗАМ"); МассивПозитив.Добавить("Б50"); МассивФМ = Новый Массив; МассивФМ.Добавить("Ф01"); МассивФМ.Добавить("Ф02"); МассивФМ.Добавить("Ф03"); МассивФМ.Добавить("Ф04"); МассивФМ.Добавить("Ф05"); МассивФМ.Добавить("Ф06"); МассивФМ.Добавить("Ф07"); МассивФМ.Добавить("Ф08"); МассивФМ.Добавить("Ф09"); МассивФМ.Добавить("Ф10"); МассивФМ.Добавить("Ф11"); МассивФМ.Добавить("Ф12"); МассивФМ.Добавить("Ф13"); МассивФМ.Добавить("Ф14"); МассивФМ.Добавить("Ф15"); МассивФМ.Добавить("Ф16"); МассивФМ.Добавить("Ф17"); МассивФМ.Добавить("ФА4"); ТЧРеализации.Очистить() РеализацииСУслугами = Новый Запрос(); РеализацииСУслугами.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугУслуги.Ссылка КАК Документ, | РеализацияТоваровУслугУслуги.Количество, | ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) КАК Префикс, | 1 КАК кодСоответствия |ПОМЕСТИТЬ ВТ_Услуги |ИЗ | Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги |ГДЕ | РеализацияТоваровУслугУслуги.Количество > 0 | И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления | И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонец | И РеализацияТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент | И (ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) В (&ПрефиксПерспектива) | ИЛИ ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) В (&ПрефиксПозитив) | ИЛИ ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) ПОДОБНО &ПрефиксПиксель | ИЛИ ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) ПОДОБНО &ПрефиксБФК | ИЛИ ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) В (&ПрефиксФМ)) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Контрагенты.Ссылка КАК НовыйКонтрагент, | Контрагенты.Код |ПОМЕСТИТЬ ВТ_Контрагенты |ИЗ | Справочник.Контрагенты КАК Контрагенты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Контрагенты.НовыйКонтрагент, | ВТ_Контрагенты.Код, | ВТ_Услуги.Документ, | ВТ_Услуги.Префикс |ИЗ | ВТ_Услуги КАК ВТ_Услуги | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Контрагенты КАК ВТ_Контрагенты | ПО ВТ_Услуги.кодСоответствия = ВТ_Контрагенты.Код"; РеализацииСУслугами.УстановитьПараметр("ДатаНачала", ДатаНачала); РеализацииСУслугами.УстановитьПараметр("ДатаКонец", ДатаКонец); РеализацииСУслугами.УстановитьПараметр("Контрагент", Контрагент); РеализацииСУслугами.УстановитьПараметр("ПрефиксПерспектива", МассивПерспектива); РеализацииСУслугами.УстановитьПараметр("ПрефиксПозитив", МассивПозитив); РеализацииСУслугами.УстановитьПараметр("ПрефиксПиксель", "В2"); РеализацииСУслугами.УстановитьПараметр("ПрефиксБФК", "Л17"); ///////////////////// ЧТО_ТО ТУТ ЕЩЕ НАКОДИТЬ НАДО ТЧРеализации.Загрузить(РеализацииСУслугами.Выполнить().Выгрузить()) Не могу придумать, как реализовать условие ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) В (&ПрефиксПерспектива) Где "РеализацияТоваровУслугУслуги.Ссылка.Номер" будет СОДЕРЖАТЬ одно из значений соответствующего массива. Как блин это сделать-то и вообще - это в запросе возможно? |
|||
12
shuhard
05.04.18
✎
16:50
|
(4)[Конфа типовая, задача разовая]
ну так не пытайся сделать красиво, сделай циклами в коде |
|||
13
DenYuliya
05.04.18
✎
16:54
|
(12) хочется красиво))).
Идея-то хороша, согласитесь? Только вот как это замутить... Циклов много сильно будет. Префикс тянется из подчиненных баз, и у него даже единого стандарта нет - где то формат номера документа "АБВ-111111111", где-то "АБ-1111111111", где-то "А-11111111111".... |
|||
14
Бычье сердце
05.04.18
✎
17:54
|
(0)
Соответствие |
|||
15
Мимохожий Однако
05.04.18
✎
18:00
|
(13) Лучшее -враг хорошего. Создай документы с одним контрагентом и в комментарий запиши префикс. Потом в универсальной обработке отбери по комментарию документы и замени в них Контрагента и договор. При этом ничего писать не надо. "Доступно и всерьез" ©Сы
|
|||
16
DenYuliya
05.04.18
✎
18:14
|
(15) документы уже ранее созданы.
Поэтому в вашем варианте как минимум надо какой-то обработкой выбрать нужные документы, из номера выделить ту часть, которая будет являться префиксом (а она у всех разная, суммарно 32 варианта префиксов). И конечная суть задачи заключается не в замене одного контрагента на другой в одном документе. Универсальная обработка не умеет создавать новые документы по условиям. |
|||
17
lodger
05.04.18
✎
18:16
|
почему " ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(15)) КАК Префикс,"?
это ж 15 знаков. значит и цифры с дефисом туда войдут. потом делать сравнение на Строка15 В (Массив), где лежат 2-3х буквенные строчки? как-то неправильно. в запросе можно так: первый пакет - выбрать чё-то, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(1)) КАК Префикс1, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(2)) КАК Префикс2, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(3)) КАК Префикс3 ПОМЕСТИТЬ ВТ_Услуги Из Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги ГДЕ РеализацияТоваровУслугУслуги.Количество > 0 И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонец И РеализацияТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент ; ////////////////////////////////////////////////////////////////////////////// второй запрос выбрать чё-то, &КонтрагентПерспектива из ВТ_Услуги где Префикс1 В (&МассивПерспектива) ИЛИ Префикс2 В (&МассивПерспектива) ИЛИ Префикс3 В (&МассивПерспектива) ну и так далее несколько запросов, можно объединить. |
|||
18
DenYuliya
05.04.18
✎
18:17
|
(14) следующим шагом, наверное, попробую соответствием.
Сейчас вытащила запросом реализации, к каждой из них добавив колонку с соответствующим "префиксом". Запрос трешовый, конечно, получился. Теперь думаю, в цикле через соответствие соединять с "контрагентом", или левым соединением в запросе со спр. "Контрагенты"? Текст запроса1: ВЫБРАТЬ РеализацияТоваровУслугУслуги.Ссылка КАК Документ, ИСТИНА КАК Переместить, ВЫБОР КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "ВО32" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Л11" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б8" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Н148" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "К4" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "П72" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 1) ПОДОБНО "Р" ТОГДА "Ф00001701" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "С24" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Т27" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "Н1" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б49" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ВБР" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "М163" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ЗАМ" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б50" ТОГДА "Ф00001695" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "В2" ТОГДА "Ф00000248" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Л17" ТОГДА "Ф00000285" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф01" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф02" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф03" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф04" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф05" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф06" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф07" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф08" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф09" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф10" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф11" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф12" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф13" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф14" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф15" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф16" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф17" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ФА4" ТОГДА "Ф00001606" КОНЕЦ КАК Префикс, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)) КАК Номер ИЗ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги ГДЕ РеализацияТоваровУслугУслуги.Количество > 0 И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонец И РеализацияТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО РеализацияТоваровУслугУслуги.Ссылка, ВЫБОР КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО "М163" ТОГДА 1 КОНЕЦ, ВЫБОР КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО "М163" ТОГДА 1 КОНЕЦ, ВЫБОР КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО "ВО32" ТОГДА "Ф00001701" КОНЕЦ, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), ВЫБОР КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "ВО32" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Л11" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Б8" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Н148" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "К4" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "П72" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "P" ТОГДА "Ф00001701" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "С24" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Т27" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Н1" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Б49" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "ВБР" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "М163" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "ЗАМ" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Б50" ТОГДА "Ф00001695" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "В2" ТОГДА "Ф00000248" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Л17" ТОГДА "Ф00000285" КОНЕЦ, ВЫБОР КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "ВО32" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Л11" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б8" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "Н148" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "К4" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "П72" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 1) ПОДОБНО "Р" ТОГДА "Ф00001701" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "С24" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Т27" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "Н1" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б49" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ВБР" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО "М163" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ЗАМ" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Б50" ТОГДА "Ф00001695" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 2) ПОДОБНО "В2" ТОГДА "Ф00000248" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Л17" ТОГДА "Ф00000285" КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф01" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф02" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф03" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф04" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф05" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф06" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф07" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф08" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф09" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф10" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф11" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф12" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф13" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф14" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф15" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф16" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "Ф17" ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 3) ПОДОБНО "ФА4" ТОГДА "Ф00001606" КОНЕЦ УПОРЯДОЧИТЬ ПО РеализацияТоваровУслугУслуги.Ссылка.Дата |
|||
19
DenYuliya
05.04.18
✎
18:20
|
(17) идею вашу поняла, спасибо. Т.е. если я буду использовать комбинацию
ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(4)) а не ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)) У меня будут выбираться первые 4 символа? |
|||
20
lodger
05.04.18
✎
18:20
|
(17) чет попутал. не выразить, а подстрока
ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 0, 1) ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 0, 2) ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 0, 3) |
|||
21
DenYuliya
05.04.18
✎
18:21
|
(17) в продолжение.
Остальное не могу понять, как применить, потому что мне не известна заранее длинна префикса, он разный для всех документов (от 1 до 4 символов). |
|||
22
DenYuliya
05.04.18
✎
18:22
|
(20) в (18) у меня как раз ПОДСТРОКА используется.
|
|||
23
lodger
05.04.18
✎
18:22
|
(21) так вы ж сами привели работу с первые 1-3 символами префикса?
|
|||
24
DenYuliya
05.04.18
✎
18:24
|
(23) запуталась в вашей мысли. Ну привела, и что? вопрос был не в том, как отсечь от номера первые 4 символа.
|
|||
25
lodger
05.04.18
✎
18:26
|
(24) значит вы (17) не читали до конца.
|
|||
26
lodger
05.04.18
✎
18:28
|
(24) как взять 4 символа, это лишь первая и не самая значимая уловка.
вы кстати неправы когда пишете ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) во 1. цифра 1 это позиция символа, в программировании принято что у начального символа нулевая позиция. во 2. номер и так строка, зачем вы делаете выразить? |
|||
27
DenYuliya
05.04.18
✎
18:30
|
Представьте себе табличку с 2 колонками.
Если у документа номер начинается с символов в колонке ПРЕФИКС, то данному документу надо сопоставить контрагента из колонки КОНТРАГЕНТ. Всего 5 табличек с соответствиями. Например, 18 вариантам префикса соответствует Контрагент1. Еще 10 вариантам префикса соответствует Контрагент2. ПРЕФИКС КОНТРАГЕНТ 1) ВО32 Перспектива Л11 Б8 Н148 Л138 К4 П72 P 2) С24 Позитив Т27 Н1 Б49 ВБР М163 ЗАМ Б50 Я хотела эти соответствия префикса контрагенту запихнуть в массив (структуру, список значений или что-то еще), передавать этот массив как параметр в запрос, и с каждым из значений массива сравнивать. Чтобы не было этого громозкого условия. Понимаете? Я-то понимаю, чего я хочу, но не уверена, что понятно объясняю. |
|||
28
DenYuliya
05.04.18
✎
18:33
|
(26)
насчет ВЫРАЗИТЬ Номер Как Строка - да, сейчас переделаю. Перестраховалась. Насчет "начинать с 1 символа" - тоже об этом думала, с "0", или с "1", погуглила примеры, попробовала с "1" - работает. Правильнее с "0"? Сейчас поправлю. |
|||
29
lodger
05.04.18
✎
18:36
|
(27) в (17) вчитайся. поищи &КонтрагентПерспектива, много думай.
или если уж ТАКСИЛЬНОХОЧЕТСЯЧТОНЕМОГУ! тогда используй ТаблицуЗначений с типизированными колонками префикс и контрагент. заполнять примерно так: ВО32 Перспектива Л11 Перспектива Б8 Перспектива Н148 Перспектива Л138 Перспектива К4 Перспектива П72 Перспектива P Перспектива поместить ТЗ в запрос параметром. потом выполнив первый запрос из 17 начать возится с соединениями и ЕСТЬNULL... но нафейхоа? когда в (17) проблема уже решена... |
|||
30
DenYuliya
05.04.18
✎
18:50
|
(29) можно без хамства, пожалуйста? Я правда не понимаю задумку (17).
ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(1)) КАК Префикс1, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(2)) КАК Префикс2, ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(3)) КАК Префикс3 Фигня какая то получается в результате запроса. Получается 3 колонки с 1, 1 и 2, и с 1,2,3 символом номера. И что мне с этим делать? Мне это вообще не надо. |
|||
31
lodger
05.04.18
✎
18:54
|
(30) ну а дальше что с ними сделано? у вас прикладная задача или теоретические изыскания?
|
|||
32
DenYuliya
05.04.18
✎
18:56
|
(29) у меня 5 массивов.
В каждом из них от 2 до 18 вариантов префиксов длинной от 1 до 4 первых символов номера. Всего 36 вариантов префиксов, соответствующих 5 контрагентам. Если делать как в (17), это сколько таблиц должно в запросе быть, что-то дофига выходит... Либо я не так понимаю(( |
|||
33
DenYuliya
05.04.18
✎
18:58
|
(31) естественно я на работе прикладными задачами занимаюсь, не знаю, как вы.
С задачей "выбрать 1, 1 и 2, или 1,2,3 символ номера" я бы и без вопросов на Мисте справилась, увы, вопрос в другом. |
|||
34
lodger
05.04.18
✎
19:06
|
(33) ну так они не просто так выбраны, а помещены в ВТ, а потом опрошены с условием...
все короче. я ушел. |
|||
35
Мимохожий Однако
05.04.18
✎
19:19
|
(16) Если документы уже созданы, то можно воспользоваться универсальной обработкой подбора объектов с произвольным кодом. ИМХО, нечётко поставленная задач ведёт к лишней работе. Я чётко поставленной задачи не увидел.
|
|||
36
Сияющий в темноте
05.04.18
✎
19:33
|
Префиксы имеет смысл группировать по длине,чтобы,вырезав из строки начало нужной длины проверить их все по порядку
и по идее,должна быть таблица значений,чтобы можно было по длине отсортировать,которую записать в отдельную колонку таблицу же может пользователь на форме заполнить,а запросом придется выбрать все номера за период для обработки |
|||
37
АнализДанных
05.04.18
✎
22:34
|
(0) Если я правильно понял задачу, то ты хочешь для существующих документов подобрать контрагентов у которых такой же префикс (или часть), как у документа?
Процедура ВыполнитьЧтоТо() ТаблицаСоответсвий = Новый ТаблицаЗначений; ТаблицаСоответсвий.Колонки.Добавить("Префикс", Новый ОписаниеТипов("Строка")); ТаблицаСоответсвий.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); Контрагент_Перспектива = Справочник.Контрагенты.НайтиПоКоду(111); ДобавитьВТаблицу(ТаблицаСоответсвий, "ААА", Контрагент_Перспектива); ДобавитьВТаблицу(ТаблицаСоответсвий, "АА", Контрагент_Перспектива); ДобавитьВТаблицу(ТаблицаСоответсвий, "А", Контрагент_Перспектива); Контрагент_РогаИКопыта = Справочник.Контрагенты.НайтиПоКоду(222); ДобавитьВТаблицу(ТаблицаСоответсвий, "БББ", Контрагент_РогаИКопыта); ДобавитьВТаблицу(ТаблицаСоответсвий, "ББ", Контрагент_РогаИКопыта); ДобавитьВТаблицу(ТаблицаСоответсвий, "Б", Контрагент_РогаИКопыта); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТаблицаПрефиксов.Префикс, | ТаблицаПрефиксов.Контрагент |ПОМЕСТИТЬ втПрефиксыКонтрагентов |ИЗ | &ТаблицаПрефиксов КАК ТаблицаПрефиксов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОтгрузкаПокупателю.Ссылка, | втПрефиксыКонтрагентов.Контрагент |ИЗ | Документ.ОтгрузкаПокупателю КАК ОтгрузкаПокупателю | ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПрефиксыКонтрагентов КАК втПрефиксыКонтрагентов | ПО (ПОДСТРОКА(ОтгрузкаПокупателю.Номер, 1, 1) = втПрефиксыКонтрагентов.Префикс | ИЛИ ПОДСТРОКА(ОтгрузкаПокупателю.Номер, 1, 2) = втПрефиксыКонтрагентов.Префикс | ИЛИ ПОДСТРОКА(ОтгрузкаПокупателю.Номер, 1, 3) = втПрефиксыКонтрагентов.Префикс | ИЛИ ПОДСТРОКА(ОтгрузкаПокупателю.Номер, 1, 4) = втПрефиксыКонтрагентов.Префикс)"; Запрос.УстановитьПараметр("ТаблицаПрефиксов", ТаблицаСоответсвий); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл // Вставить обработку выборки КонецЦикла; КонецПроцедуры Процедура ДобавитьВТаблицу(Таблица, Префикс, Контрагент) НовСтр = Таблица.Добавить(); НовСтр.Префикс = Префикс; НовСтр.Контрагент = Контрагент; КонецПроцедуры |
|||
38
DenYuliya
06.04.18
✎
13:57
|
(35) Универсальная обработка подберет объекты, но дальше-то она ничего не сможет сделать (на основание отобранных документов надо создавать другие документы). Я знаю про Универсальную обработку, но она, насколько мне известно, совсем для других целей, и это не пользовательский инструмент, а скорее админиский.
|
|||
39
DenYuliya
06.04.18
✎
14:00
|
Всем спасибо за ответы и советы, особенно (6) и (25), в итоге сделала так:
Функция ОтобратьРеализацииСУслугами() ЗапросРеализации = Новый Запрос; ЗапросРеализации.УстановитьПараметр("ДатаНачала", ДатаНачала); ЗапросРеализации.УстановитьПараметр("ДатаКонец", ДатаКонец); ЗапросРеализации.УстановитьПараметр("Контрагент", Контрагент); ЗапросРеализации.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугУслуги.Ссылка КАК Документ, | ВЫБОР | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""ВО32"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Л11"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б8"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""Н148"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""К4"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""П72"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 1) ПОДОБНО ""Р"" | ТОГДА ""Ф00001701"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""С24"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Т27"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""Н1"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б49"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ВБР"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""М163"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ЗАМ"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б50"" | ТОГДА ""Ф00001695"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""В2"" | ТОГДА ""Ф00000248"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Л17"" | ТОГДА ""Ф00000285"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф01"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф02"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф03"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф04"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф05"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф06"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф07"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф08"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф09"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф10"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф11"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф12"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф13"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф14"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф15"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф16"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф17"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ФА4"" | ТОГДА ""Ф00001606"" | КОНЕЦ КАК Префикс, | ИСТИНА КАК Переместить |ИЗ | Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги |ГДЕ | РеализацияТоваровУслугУслуги.Количество > 0 | И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления | И РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонец | И РеализацияТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслугУслуги.Ссылка, | ВЫБОР | КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО ""М163"" | ТОГДА 1 | КОНЕЦ, | ВЫБОР | КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО ""М163"" | ТОГДА 1 | КОНЕЦ, | ВЫБОР | КОГДА РеализацияТоваровУслугУслуги.Ссылка.Номер ПОДОБНО ""ВО32"" | ТОГДА ""Ф00001701"" | КОНЕЦ, | ВЫБОР | КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""ВО32"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Л11"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Б8"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Н148"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""К4"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""П72"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""P"" | ТОГДА ""Ф00001701"" | КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""С24"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Т27"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Н1"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Б49"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""ВБР"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""М163"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""ЗАМ"" | ИЛИ ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Б50"" | ТОГДА ""Ф00001695"" | КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""В2"" | ТОГДА ""Ф00000248"" | КОГДА ПОДСТРОКА(ВЫРАЗИТЬ(РеализацияТоваровУслугУслуги.Ссылка.Номер КАК СТРОКА(12)), 1, 4) ПОДОБНО ""Л17"" | ТОГДА ""Ф00000285"" | КОНЕЦ, | ВЫБОР | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""ВО32"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Л11"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б8"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""Н148"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""К4"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""П72"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 1) ПОДОБНО ""Р"" | ТОГДА ""Ф00001701"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""С24"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Т27"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""Н1"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б49"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ВБР"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 4) ПОДОБНО ""М163"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ЗАМ"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Б50"" | ТОГДА ""Ф00001695"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 2) ПОДОБНО ""В2"" | ТОГДА ""Ф00000248"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Л17"" | ТОГДА ""Ф00000285"" | КОГДА ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф01"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф02"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф03"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф04"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф05"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф06"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф07"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф08"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф09"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф10"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф11"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф12"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф13"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф14"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф15"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф16"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""Ф17"" | ИЛИ ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Номер, 1, 3) ПОДОБНО ""ФА4"" | ТОГДА ""Ф00001606"" | КОНЕЦ | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслугУслуги.Ссылка.Дата"; ТаблицаРеализаций = ЗапросРеализации.Выполнить().Выгрузить(); Возврат ТаблицаРеализаций; КонецФункции Функция СопоставитьКонтрагентаРеализации() ТаблицаРеализаций = ОтобратьРеализацииСУслугами(); ЗапросКонтрагенты = Новый Запрос; ЗапросКонтрагенты.УстановитьПараметр("ТаблицаРеализаций", ТаблицаРеализаций); ЗапросКонтрагенты.Текст = "ВЫБРАТЬ | ТаблицаРеализаций.Документ, | ТаблицаРеализаций.Префикс, | ТаблицаРеализаций.Переместить |ПОМЕСТИТЬ ВТ_ПрефиксыРеализации |ИЗ | &ТаблицаРеализаций КАК ТаблицаРеализаций |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Контрагенты.Ссылка КАК НовыйКонтрагент, | ВТ_ПрефиксыРеализации.Документ, | ВТ_ПрефиксыРеализации.Префикс КАК Префикс, | ВТ_ПрефиксыРеализации.Переместить |ИЗ | ВТ_ПрефиксыРеализации КАК ВТ_ПрефиксыРеализации | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО ВТ_ПрефиксыРеализации.Префикс = Контрагенты.Код |ГДЕ | НЕ Контрагенты.ПометкаУдаления | |УПОРЯДОЧИТЬ ПО | Префикс"; ТаблицаКонтрагенты = ЗапросКонтрагенты.Выполнить().Выгрузить(); Возврат ТаблицаКонтрагенты; КонецФункции Может не совсем красиво, но работает корректно, правда долго, если период большой брать. |
|||
40
DenYuliya
06.04.18
✎
16:55
|
В продолжение (39).
Хотя долго работает не запрос, а дальнейшие манипуляции с документами, запрос быстро отрабатывает. |
|||
41
Мимохожий Однако
06.04.18
✎
17:07
|
(38) В первоначальной постановке задачи ничего не говорилось про того, кто это делает. Произвольный код можно сохранить и научить пользователя.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |