#0
by pessok
Коллеги, приветствую УТ 10.3, несколько допиленная под нужды. В данном случае говорим о розничной продаже в разрезе заказов. Дополнительно сделан РН ТоварыНаБорту, соответственно кладовщик при отгрузке "отправляет" в машину товары, и уже именно из этих товаров формируются документы продажи. Есть обработочка, которая по списку заказов формирует ЧекиККМ, а потом закрытие заказов, чтобы подчистить хвосты. Ранее списание происходило с того склада, который был указан кладовщиком при отправке на борт. Теперь нужно реализовать нечто типа метода списания ФИФО в разрезе организаций, чтобы ЧекККМ создавался на ту организацию, где сейчас есть остатки (т.е. на один заказ может быть N чеков от разных организаций, не спрашивайте зачем, это "узбекский учет" (: ) Притом надо учесть, что созданные ранее чеки тоже виртуально списывают партии (хотя на самом деле спишет уже только ОРП). Чеки создаются группой в одной транзакции, соответственно для каждого конкретного заказа нужно проверить остатки с учетом уже созданных ранее в этой транзакции чеков. Я представляю себе только запрос в цикле (при обходе заказов формируем запрос остатков), а как сделать красивее?
#5
by H A D G E H O G s
Заказ - это заказ покупателя? Как один заказ покупателя может быть на несколько организаций?
#6
by pessok
потому что хотят чеки. см. "узбекский учет". Продажа обезличена, но все равно ведется в разрезе заказов заказ один, а чеков по нему может быть несколько, на несколько разных организаций. Код, пока не дописан, т.к. я не уверен, что ход мыслей правильный. Пока писал все эти TODO уже, кажись, придумал относительно нормальное решение
#8
by pessok
+ более верное, на мой взгляд, решение появилось: сначала сформировать полную таблицу остатков, а потом уже непосредственно в ней при создании чеков уменьшать количество остатка по организации. И для этой таблице при обходе искать соответствия
#12
by spiller26
ВыборкаЗаказ = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам) Зачем группировка??? Зачем в запросе Итоги?
#14
by pessok
это еще старый вариант просто, когда для одного заказа четко создавался один чек по организации заказа. Заполнять чеки удобнее по группировкам. Итоги не нужны, согласен
#15
by Garykom
Кстати запросы считают что то (когда + и -) медленно, они тока выборку быстро делают данных (по индексам) Так что самое быстрое и без запросов в цикле, это запросом строим таблицу(ы) и дальше по ней(ним) работаем
#17
by spiller26
Можно сделать все в одном запросе, но долго "МассивЗаказов" загнать в ВТ_МассивЗаказов Функцию СформироватьТаблицуОстатковПартийПоЗаказам(МассивЗаказов) переработать в запрос
#18
by pessok
не можно, к сожалению. мне нужно проверять чеки, которые уже созданы в этой транзакции. Т.е: В массиве заказов два заказа. в каждом "Номенклатура А" - 1 шт У нас есть по одной партии этого товара на каждой из двух организаций. Соответственно после того, как создался первый чек остатки уже изменились, второй чек должен создаваться с учетом этого
#19
by pessok
посему оптимальное, на мой взгляд, сразу создать таблицу остатков и уже при создании чеков убирать из нее "списанную" чеком номенклатуру
#21
by mdocs
набор умных слов. Сначала надо написать работающий код, потом думать об оптимизации. Если можете сразу все продумать оптимально, то это отлично. Если нет - то пишите хоть как нибудь но чтоб на выходе были верные данные.
#22
by pessok
вот это как раз таки плохой подход. надо сразу писать нормально. потому что в противной случае этот копрокод так и останется навсегда
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Ширина колонки в таблице значений программно
- План обмена. Вручную выгружается, автоматически нет.
- Зависает выгрузка информационной базы
- Удаленная перезагрузка ПК через роутер
- Отладчик не заходит во внеш. обработку. debug стоит
- Как получить все эл-ты ДанныеФормыКоллекция?
- Ошибка при вызове метода контекста (Сдвинуть)
- Правила обмена данных
- БП3 Почему форма ПТиУ открывается только просмотр?
- v7: Ошибка чтения файла
- RDP. Server2008->Server2008. Монтирование локального диска.
- 1с лог как внешний источник данных, проблемы с размером и памятью
- Программно Открыть ОСВ с ОТБОРОМ !УФ!
- Алгоритм получения всех комбинаций значений
- Розница 8. Серии и сроки годности.
- 8.3 идентификация пользователя не выполнена
- Postgre ??? Простейший запрос висит
- По документообороту подскажите - связи документов
- Как отбросить часть знаков после запятой?
- списание пива - "прочие расходы" в декларации формы 5