|   |   | 
| 
 | Нарастающий текстовый итог в запросе 1С. КАК? | ☑ | ||
|---|---|---|---|---|
| 0
    
        alf2006x 04.10.23✎ 12:38 | 
        Всем доброго дня.
 Что-то я тут никак не сварю ... Вроде задача простая (с точки зрения клиента), но оч. смахивает на невыполнимую (ИМХО) )) В УТ 11 есть регистр сведений РазмещениеНоменклатурыПоСкладскимЯчейкам. Данные в нём примерно такие: Номенклатура Ячейка Винт А1 Винт В3 Винт Б7 Гайка Ж4 Гайка Н8 Гайка С5 Гайка Г2 Как сделать запрос (видимо с нарастающим итогом) чтобы на выходе получить такой результат: Номенклатура Ячейки Винт А1, В3, Б7 Гайка Ж4, Н8, С5, Г2 Накалякал уже 10 разновидностей запросов - но никак в одну строку ячейки по одной номенклатуре собрать не могу. Как-то они только попарно собираются и всё тут... Помогите, кто чем может )) | |||
| 1
    
        vicof 04.10.23✎ 12:43 | 
        В СКДшке можно     | |||
| 2
    
        Волшебник 04.10.23✎ 12:43 | 
        Просто запросом нельзя, но можно выражением СКД или программным кодом.
 Надо вызвать функцию встроенного языка СтрСоединить() | |||
| 3
    
        Гипервизор 04.10.23✎ 12:44 | 
        С точки зрения клиента не пофик ли как именно реализовано? Почему именно в запросе?     | |||
| 4
    
        Franchiser 04.10.23✎ 12:45 | 
        Если запрос, то запрос с итогами + обход результата     | |||
| 5
    
        vicof 04.10.23✎ 12:45 | 
        И это не нарастающий итог, а соединение строк.     | |||
| 6
    
        Timon1405 04.10.23✎ 12:48 | 
        (0) там есть отчет "СправочноеРазмещениеНоменклатуры",
 за базу можно взять его, там внутри есть СоединитьСтроки (Упорядочить(ТаблицаЗначений(Различные НоменклатураДополнительнойЯчейки, НоменклатураДополнительнойЯчейкиВНаличии, НоменклатураДополнительнойЯчейкиЕдИзм)), ", ", " ") | |||
| 7
    
        alf2006x 04.10.23✎ 13:06 | 
        Тут главная цель - это показать в виде строки все ячейки где лежит товар прямо в форме списка справочника Номенклатура.
 А там динозапрос. Даж не знаю как тут СКД прикрутить. | |||
| 8
    
        Новиков 04.10.23✎ 13:29 | 
        (7) Совсем плохая идея. Лучше - команда в форме списка, по которой вызывается отчет или отдельная обработка.     | |||
| 9
    
        Михаил Козлов 04.10.23✎ 13:42 | 
        (7) Чем штатный отчет по ячейкам не подходит?     | |||
| 10
    
        НафНаф 04.10.23✎ 13:45 | 
        Не увидел где тут нарастание. Увидел агрегирование ячеек посредством конкатенации наименований с группировкой по номенклатуре. А так ответ в (2)     | |||
| 11
    
        НафНаф 04.10.23✎ 13:47 | 
        (7) можно и так конечно. Я сделал отдельную таблицу. Показывает в ней остатки на складах и ячейки по текущей позиции товара     | |||
| 12
    
        vde69 04.10.23✎ 13:47 | 
        у меня есть подобная реализация, я сделал отдельное поле в которое при записи записываю собранную в коде строку, ну а в запросе просто ее использую без всяких заморочек.
 в твоем случае возможно нужно сделать дополнительный регистр... | |||
| 13
    
        alf2006x 04.10.23✎ 13:54 | 
        (8) Так та оно так... Но ведь человек ленив и ему надо чтобы "всё и сразу".
 Сейчас имеется одтельная табличка в которой все ячейки отображаются при тыке на номенклатуру. Но ведь "человек ленив"(с) ... и хоцца видеть всё как на ладони... | |||
| 14
    
        alf2006x 04.10.23✎ 13:56 | 
        (9) Ну сложный вопрос. Ответ наверное в (13) - они хочуть видеть один инструмент и пользоваться им. В принципе вполне законно. А так придётся работать с номенклатурой из двух окон (справочник и отчет).     | |||
| 15
    
        alf2006x 04.10.23✎ 13:57 | 
        (11) читал и отвечал сверху вниз )
 Моя солидарность с этим решением в посте 13 | |||
| 16
    
        alf2006x 04.10.23✎ 13:59 | 
        Есть "почти" решение. Делает то, что надо. Правда с производительностью может быть накладочка.
 Вот это "почти решение": ВЫБРАТЬ РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура.Код КАК Код, РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура КАК Номенклатура, РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка.Наименование КАК Ячейка ПОМЕСТИТЬ ВсеЯчейкиНоменклатуры ИЗ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам ИНДЕКСИРОВАТЬ ПО Код ; ВЫБРАТЬ АВТОНОМЕРЗАПИСИ() КАК НомерПП, ВсеЯчейкиНоменклатуры.Номенклатура КАК Номенклатура, ВсеЯчейкиНоменклатуры.Ячейка КАК Ячейка ПОМЕСТИТЬ ВсеЯчейкиНоменклатуры2 ИЗ ВсеЯчейкиНоменклатуры КАК ВсеЯчейкиНоменклатуры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеЯчейкиНоменклатуры1.Номенклатура КАК Номенклатура, ВсеЯчейкиНоменклатуры1.Ячейка + ", " + ВсеЯчейкиНоменклатуры2.Ячейка + ", " + ВсеЯчейкиНоменклатуры3.Ячейка + ", " + ВсеЯчейкиНоменклатуры4.Ячейка ИЗ ВсеЯчейкиНоменклатуры2 КАК ВсеЯчейкиНоменклатуры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЯчейкиНоменклатуры2 КАК ВсеЯчейкиНоменклатуры2 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры2.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры2.НомерПП + 1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЯчейкиНоменклатуры2 КАК ВсеЯчейкиНоменклатуры3 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры3.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры3.НомерПП + 2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЯчейкиНоменклатуры2 КАК ВсеЯчейкиНоменклатуры4 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры4.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры4.НомерПП + 3 | |||
| 17
    
        alf2006x 04.10.23✎ 14:00 | 
        Блин с названиями таблиц плохо вышло. Сейчас перепишу.     | |||
| 18
    
        alf2006x 04.10.23✎ 14:02 | 
        ВЫБРАТЬ
 РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура.Код КАК Код, РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура КАК Номенклатура, РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка.Наименование КАК Ячейка ПОМЕСТИТЬ Размещение ИЗ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам ИНДЕКСИРОВАТЬ ПО Код ; ВЫБРАТЬ АВТОНОМЕРЗАПИСИ() КАК НомерПП, Размещение.Номенклатура КАК Номенклатура, Размещение.Ячейка КАК Ячейка ПОМЕСТИТЬ Пронумерованные ИЗ Размещение КАК Размещение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеЯчейкиНоменклатуры1.Номенклатура КАК Номенклатура, ВсеЯчейкиНоменклатуры1.Ячейка + ", " + ВсеЯчейкиНоменклатуры2.Ячейка + ", " + ВсеЯчейкиНоменклатуры3.Ячейка + ", " + ВсеЯчейкиНоменклатуры4.Ячейка ИЗ Пронумерованные КАК ВсеЯчейкиНоменклатуры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Пронумерованные КАК ВсеЯчейкиНоменклатуры2 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры2.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры2.НомерПП + 1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Пронумерованные КАК ВсеЯчейкиНоменклатуры3 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры3.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры3.НомерПП + 2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Пронумерованные КАК ВсеЯчейкиНоменклатуры4 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры4.Номенклатура И ВсеЯчейкиНоменклатуры1.НомерПП = ВсеЯчейкиНоменклатуры4.НомерПП + 3 | |||
| 19
    
        alf2006x 04.10.23✎ 14:04 | 
        Но есть проблемка...
 На выходе вместо Номенклатура Ячейки Винт А1, В3, Б7 Гайка Ж4, Н8, С5, Г2 Только Номенклатура Ячейки Гайка Ж4, Н8, С5, Г2 Видимо коджа номенклатура лежит в 3-х ячейках Конкатенация словила null и рубанула его. | |||
| 20
    
        alf2006x 04.10.23✎ 14:05 | 
        Колдуем дальше... )     | |||
| 21
    
        RomanYS 04.10.23✎ 14:05 | 
        (18) это ж., а не почти решение: не будет 4 ячеек по номенклатуре - не увидишь ее совсем, будет больше 4х ячеек - получишь дубли     | |||
| 22
    
        alf2006x 04.10.23✎ 14:07 | 
        (21) В том то и прикол. Что если больше 4-х или меньше 4-х, то они не дублируются, а просто не выводятся.     | |||
| 23
    
        alf2006x 04.10.23✎ 14:07 | 
        Для 3-х соединений также получаю только номенклатуру с итоговой строкой с тремя ячейками.     | |||
| 24
    
        RomanYS 04.10.23✎ 14:08 | 
        (21) с первым можно (но не нужно) бороться левыми соединениями и ЕстьNULL. А второе в общем случае нерешаемо     | |||
| 25
    
        alf2006x 04.10.23✎ 14:08 | 
        Для 2-х соединений - только с двумя.     | |||
| 26
    
        alf2006x 04.10.23✎ 14:08 | 
        (24) Клянусь - никаких дублей не вижу! )))     | |||
| 27
    
        alf2006x 04.10.23✎ 14:11 | 
        А, нет.... вижу. Есть дубли, блин.     | |||
| 28
    
        H A D G E H O G s 04.10.23✎ 14:12 | 
        (18) А ты неплох!     | |||
| 29
    
        alf2006x 04.10.23✎ 14:13 | 
        (28) Да не, ерунда получается. Согласен с (21)     | |||
| 30
    
        H A D G E H O G s 04.10.23✎ 14:21 | 
        (29) Это было восхищение.     | |||
| 31
    
        alf2006x 04.10.23✎ 14:37 | 
        (30) с привкусом сарказма? )))     | |||
| 32
    
        НафНаф 04.10.23✎ 14:41 | 
        А нельзя просто взять отбор по номенклатуре к регистру. Итоги по номенклатуре и обходя детальные записи скокатенировать данные ячеек в коде? Можно даже их поместить в массив, а потом сделать СтрСоединить чтоб уж точно не работать с медленным выделением памяти на строки     | |||
| 33
    
        alf2006x 04.10.23✎ 14:48 | 
        Ну да ладно, хочу чтобы меня уже порвали тут как тузика.
 План такой: 1. Сначала вычисляю итог по количеству номенклатуры в регистре. Максимум - это максимальное количество последующих соединений. 2. Затем в обратном порядке объединяю в итоговую таблицу результаты запросов по убыванию количества соединений. В каждом последующем соединении выкидываю номенклатуру уже ранее найденную в "старших" (с большим количеством ячеек) таблицах. То есть в моём случае, если допускаем что у одного товара не может быть больше 4-х ячеек, то это будет 4 таблицы А общее количество внутренних соединений: 4+3+2 = 9 Производительность офигеет? Или терпимо? | |||
| 34
    
        alf2006x 04.10.23✎ 14:50 | 
        (32) Тут я немного не понял.
 Динамический запрос на форме списка заменить таблицей? Или как? | |||
| 35
    
        alf2006x 04.10.23✎ 14:52 | 
        (32) А как запихнуть код в обход вывода детальных записей?
 Я видел что такое работает в табличной части документа, например. А в списке справочникане пробовал. Это в каком методе надо прописать? | |||
| 36
    
        RomanYS 04.10.23✎ 14:53 | 
        (33) замени внутренние на левые будет 4 достаточно. Но всё равно такое решение - (*)     | |||
| 37
    
        RomanYS 04.10.23✎ 15:00 | 
        Сейчас запросы поддерживают в ДС пакетные запросы, наверное можно передать собранные туда строки в ТЗ и соединить с ней в результирующем запросе.
 Но тогда уж логичнее хранить собранные готовые строки где-нибудь в РС и сразу с ним соединять в запросе ДС | |||
| 38
    
        Timon1405 04.10.23✎ 15:05 | 
        (35) https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/
 ДС уже 7 лет как умеют приполученииданных. но лучше, конечно, считать отдельно) | |||
| 39
    
        alf2006x 04.10.23✎ 15:08 | 
        (37) Отдельный РС - напряжно. Его создавать надо, за ним следить надо. Чтобы мало-ли-чего-где...     | |||
| 40
    
        alf2006x 04.10.23✎ 15:15 | 
        (38) Спасибо, попробую. 
 А почему лучше считать отдельно? Какие минусы (/недостатки) у этого метода? | |||
| 41
    
        H A D G E H O G s 04.10.23✎ 15:35 | 
        (33) Охереет. Динамический список еще наложит своих сортировок.
 А потом придет RLS и постучит сапогом LazySpool в tempdb SQL. | |||
| 42
    
        H A D G E H O G s 04.10.23✎ 15:35 | 
        (31) Я же говорил, что вы неплох.     | |||
| 43
    
        H A D G E H O G s 04.10.23✎ 15:36 | 
        (37) Нельзя.     | |||
| 44
    
        alf2006x 04.10.23✎ 15:42 | 
        (43) хм..  так как в итоге быть-то?
 Какое самое оптимальное решение? | |||
| 45
    
        alf2006x 04.10.23✎ 15:43 | 
        (44) (38)?     | |||
| 46
    
        H A D G E H O G s 04.10.23✎ 15:44 | 
        Если прям прям хочется сделать красиво:
 1) Справочник "ГруппыСкладскихЯчеек". Реквизиты: Наименование ХешВложений (индексирован) ТЧ Ячейки ПередЗаписью() вычисляем хеш вложенных ячеек, пишем в реквизит. 2) РС РазмещениеНоменклатурыПоГруппамСкладскимЯчейкам - скопированный из исходного, ячейка заменена на группу ячеек. 3) В ПриЗаписи набора записей РазмещениеНоменклатурыПоСкладскимЯчейкам определяем в каких наборах ячеек находятся изменяемые Номенклатуры данного склада/помещения, вычисляем для наборов ячеек хеш, по хешу ищем группу, записываем/создаем ее в РС РазмещениеНоменклатурыПоГруппамСкладскимЯчейкам | |||
| 47
    
        H A D G E H O G s 04.10.23✎ 15:45 | 
        (46) Справочник ГруппыСкладскихЯчеек в реквизит наименование записываем сконкатенированное наименование вложенных ячеек     | |||
| 48
    
        H A D G E H O G s 04.10.23✎ 15:48 | 
        Оптимально - развести 1С на реализацию поддержки STRING_AGG  
 https://learn.microsoft.com/ru-ru/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver16 | |||
| 49
    
        alf2006x 04.10.23✎ 15:49 | 
        (47) Спасибо. Буду пробовать.     | |||
| 50
    
        alf2006x 04.10.23✎ 15:50 | 
        (48) Ой, нет. Это уже незнакомые слова пошли )     | |||
| 51
    
        alf2006x 04.10.23✎ 15:51 | 
        "Развести 1С" - это клевать им мозг пока они это не добавят? ))     | |||
| 52
    
        alf2006x 04.10.23✎ 15:52 | 
        У них там дата каким годом заканчивается? 3999 ?
 Вот к тому моменту они и разродятся на STRING_AGG | |||
| 53
    
        Garykom 04.10.23✎ 16:03 | 
        (44) >Какое самое оптимальное решение?
 Сделать обход групп и конкатенацию ячеек в одну строку программно кодом. И не страдать непонятно чем пытаясь использовать неподходящий инструмент в виде запросов. | |||
| 54
    
        Garykom 04.10.23✎ 16:05 | 
        (53)+ Допустим выяснится что ячеек в одной строке может быть не максимум 4 а 400
 И? | |||
| 55
    
        alf2006x 04.10.23✎ 16:06 | 
        (53) Не понял. 
 Обход групп в каком месте должен быть? Приполученииданных ? | |||
| 56
    
        alf2006x 04.10.23✎ 16:07 | 
        (54) Согласен. Хотя 
 в моём прикладном случае вероятность такого события "Крайне мала". | |||
| 57
    
        Garykom 04.10.23✎ 16:09 | 
        (55) Смотря для чего это требуется
 Неужели хочешь записи в регистр делать? Так там можно вручную ТЗ обработать и передать | |||
| 58
    
        alf2006x 04.10.23✎ 16:11 | 
        (57) Колонку с перечнем ячеек надо добавить в список справочника "Номенклатура".     | |||
| 59
    
        Новиков 04.10.23✎ 16:13 | 
        (55) Смотря где ты собрался это собирать. Если тебе для формы выбора, то есть смысл нарисовать свою форму и подменить ее. А там подкинуть не ДС, а обычную таблицу, которую уже по (53) заполнить. Скорее всего, так будет и проще и быстрее - там же можно какие-то отборы помутить и т.д.     | |||
| 60
    
        Новиков 04.10.23✎ 16:14 | 
        (58) я же тебе уже сказал, что в городить это в ДС - плохая идея. Ты либо делай отчетом, либо - подменяй форму на свою без ДС.     | |||
| 61
    
        alf2006x 04.10.23✎ 16:16 | 
        (60) Okk     | |||
| 62
    
        Garykom 04.10.23✎ 16:16 | 
        (58) чтобы не тормозило придется делать свой РС и обновлять его     | |||
| 63
    
        Garykom 04.10.23✎ 16:19 | 
        (62)+ создаешь свой РС (Номенклатура, Ячейки)
 создаешь учетный механизм и добавляешь его в нужные документы | |||
| 64
    
        Garykom 04.10.23✎ 16:20 | 
        (63)+ общий модуль не надо, весь код можно в своем РС прописать в модуле менеджера     | |||
| 65
    
        Garykom 04.10.23✎ 16:22 | ||||
| 66
    
        Новиков 04.10.23✎ 16:23 | 
        (64) да возня все это. Ну сама задача не стоит выведенного яйца, сделал подключаемый отчет и подключил его. Как ты там сделал эту строчку - да клиенту плевать. Ну, кнопку нажать надо, да. Скорее всего, клиент поиграть 1 день и забудет про то.     | |||
| 67
    
        alf2006x 04.10.23✎ 16:29 | 
        (66) не соглашусь. 
 Проблема для них настолько серьёзная, что они даже в Паинте на скриншоте нарисовали эту колонку и написали как должны выглядеть данные в этой колонке. За 10 лет это первая постановка задачи с картинкой такого уровня )) Так что тут всё по-серьёзке. | |||
| 68
    
        Zapal 04.10.23✎ 23:41 | 
        держи
 ВЫБРАТЬ РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура КАК Номенклатура, РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка КАК Ячейка ПОМЕСТИТЬ ВсеЯчейкиНоменклатуры ИЗ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсеЯчейкиНоменклатуры1.Номенклатура КАК Номенклатура, ВсеЯчейкиНоменклатуры1.Ячейка КАК Ячейка, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВсеЯчейкиНоменклатуры2.Ячейка) КАК НомерПП ПОМЕСТИТЬ ЯчейкиНомера ИЗ ВсеЯчейкиНоменклатуры КАК ВсеЯчейкиНоменклатуры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеЯчейкиНоменклатуры КАК ВсеЯчейкиНоменклатуры2 ПО ВсеЯчейкиНоменклатуры1.Номенклатура = ВсеЯчейкиНоменклатуры2.Номенклатура И ВсеЯчейкиНоменклатуры1.Ячейка <= ВсеЯчейкиНоменклатуры2.Ячейка СГРУППИРОВАТЬ ПО ВсеЯчейкиНоменклатуры1.Номенклатура, ВсеЯчейкиНоменклатуры1.Ячейка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЯчейкиНомера.Номенклатура КАК Номенклатура, МАКСИМУМ(ВЫБОР КОГДА ЯчейкиНомера.НомерПП = 1 ТОГДА ЯчейкиНомера.Ячейка ИНАЧЕ NULL КОНЕЦ) КАК Ячейка1, МАКСИМУМ(ВЫБОР КОГДА ЯчейкиНомера.НомерПП = 2 ТОГДА ЯчейкиНомера.Ячейка ИНАЧЕ NULL КОНЕЦ) КАК Ячейка2, МАКСИМУМ(ВЫБОР КОГДА ЯчейкиНомера.НомерПП = 3 ТОГДА ЯчейкиНомера.Ячейка ИНАЧЕ NULL КОНЕЦ) КАК Ячейка3, МАКСИМУМ(ВЫБОР КОГДА ЯчейкиНомера.НомерПП = 4 ТОГДА ЯчейкиНомера.Ячейка ИНАЧЕ NULL КОНЕЦ) КАК Ячейка4 ПОМЕСТИТЬ ЯчейкиКолонки ИЗ ЯчейкиНомера КАК ЯчейкиНомера СГРУППИРОВАТЬ ПО ЯчейкиНомера.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЯчейкиКолонки.Номенклатура КАК Номенклатура, естьnull(ЯчейкиКолонки.Ячейка1, "") + " " + естьnull(ЯчейкиКолонки.Ячейка2, "") + " " + естьnull(ЯчейкиКолонки.Ячейка3, "") + " " + естьnull(ЯчейкиКолонки.Ячейка4, "") КАК СтрокаЯчейки ИЗ ЯчейкиКолонки КАК ЯчейкиКолонки | |||
| 69
    
        alf2006x 04.10.23✎ 16:58 | 
        (68) Ого,.. спасибо. Я уже совсем смирился с общественным мнением что надо делать собственную форму вместо ДС.
 В принципе так и буду делать. А пример обязательно попробую применить (с листа пока не понял как это работает). | |||
| 70
    
        H A D G E H O G s 04.10.23✎ 17:06 | 
        (69) Попробуй на рабочей базе вместе с RLS помотать список где то до середины     | |||
| 71
    
        Garykom 04.10.23✎ 17:41 | 
        (70) В несколько сеансов одновременно причем, ибо не один пользователь в один момент времени может форму списка номенклатуры открыть ))     | |||
| 72
    
        Garykom 04.10.23✎ 17:42 | 
        (71)+ И получится что или выводить отчет по кнопочке или ваять свой РС и соединять с ним     | |||
| 73
    
        Garykom 04.10.23✎ 17:43 | 
        Или как вариант показывать на форме строку ячеек только для выбранной (текущей) номенклатуры     | |||
| 74
    
        alf2006x 04.10.23✎ 22:45 | 
        (68) Zapal, мега-респект. это именно то, о чем я спрашивал в посте. Работает безупречно. Просто удивительно.
 Хотя, честно говоря, я так и не понял как это всё собирается. Через 20 минут изучения всех ВТ что-то хрустнуло в районе мозжичка и я понял, что не стоит так над собой издеваться. ))) Завтра на свежую голову буду снова перечитывать текст запроса. | |||
| 75
    
        alf2006x 04.10.23✎ 22:48 | 
        (68) Одно лишь хочу поправить. 
 Строку 3 текста. Вместо: РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка КАК Ячейка должно быть: РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка.Наименование КАК Ячейка Иначе в пред=предпоследней строке они не сконкатенируются. Оч. жаль, но преобразование типов в запросе скорее всего так никогда и не появится... | |||
| 76
    
        Новиков 05.10.23✎ 09:24 | 
        (55) 
 Если решишься на ДС и код, то ответ на Обход групп в каком месте должен быть? Приполученииданных ? тут: https://xn----1-bedvffifm4g.xn--p1ai/news/2017-12-26-many-values-in-one-cell/ | |||
| 77
    
        Zapal 05.10.23✎ 09:40 | 
        (74) основной фокус во втором запросе, там где ВсеЯчейкиНоменклатуры1.Ячейка <= ВсеЯчейкиНоменклатуры2.Ячейка
 он делает нумерацию ячеек в рамках каждой номенклатуры | |||
| 78
    
        mikecool 05.10.23✎ 09:49 | 
        (77) ты еще не узнал про АвтоНомерЗаписи()?     | |||
| 79
    
        alf2006x 05.10.23✎ 10:28 | 
        Любителям поиздеваться над базами 1С посвящается...
 Добавил вчера (68) в ДС. Результат потрясный: быстро, дёшево, сердито. список листается как и раньше, отличий в скоростях не заметил. Пожалуй только добавлю ", ..." - когда ячеек будет больше 4-х. РЛС и прочую магию пока включать не планирую, но на подкорку записал, что в нагрузку к включению ихних надо будет переделать сей конструкт через РС. H A D G E H O G s, Garykom и др. - прошу прощения что ваши усилия не смогли перетянуть меня на сторону света. Кстати, интересно, какой процент кодеров 1С используют неоптимальный, но приемлемый (по отношению к ситуации) код в своих доработках? | |||
| 80
    
        alf2006x 05.10.23✎ 10:32 | 
        (76) в (38) утверждается что так лучше не делать.
 Хотя по ссылке в статье читаю: "без потери производительности". Тогда не понимаю почему же так не стоит делать? Выглядит решение вполне приемлемым ) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |