Раздел находится в разработке. Здесь будут размещены интересные и полезные данные , касающиеся данной темы .
Для начала помещу здесь маленькую задачку . Когда смотришь на решение - все просто. Но когда делаешь , то тонкости есть.
Итак , задачка , которую можно решить в консоли запросов 1с.
Есть следующая таблица:
Товар Дата КолвоЗаказанногоНаДату ТекОстаток ======================================================== Торты 04.11.2012 3 8 Торты 05.11.2012 4 8 Торты 06.11.2012 5 8 Конфеты 04.11.2012 2 6 Конфеты 05.11.2012 4 6 Пряники 04.11.2012 5 9 Пряники 05.11.2012 2 9 Пряники 06.11.2012 1 9 ...Вопрос. Как одним запросом получить по каждому товару кол-во дней , на которое хватит текущего остатка склада, чтобы удовлетворить заказы на эти дни ? (можно понятно просто перебрать выборку - но надо запросом).
==================== Торты 2 Конфеты 2 Пряники 3 ====================
Если кто-то захочет попробовать решить в консоли данную задачку , вот подготовленные данные для консоли , чтобы самому не набирать (а далее , после этого запроса , привожу запрос-ответ, который решает данную задачку).
Запрос для формирования исходных данных.
==========================================================ВЫБРАТЬ
"Торты" КАК ТОВАР,
"04.11.2012" КАК ДатаЗаказов, 3 КАК КолвоЗаказовНаДату, 8 КАК ТекОстатокОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Торты",
"05.11.2012", 4, 8ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Торты",
"06.11.2012", 5, 8ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Конфеты",
"04.11.2012", 2, 6ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Конфеты",
"05.11.2012", 4, 6ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Пряники",
"04.11.2012", 5, 9ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Пряники",
"05.11.2012", 2, 9ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Пряники",
"06.11.2012", 1, 9=========================================================
А вот конечный запрос-ответ , решающий данную проблему:
======================================================= ВЫБРАТЬ "Торты" КАК ТОВАР, "04.11.2012" КАК ДатаЗаказов, 3 КАК КолвоЗаказовНаДату, 8 КАК ТекОстаток ПОМЕСТИТЬ ИсхТабл ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Торты", "05.11.2012", 4, 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Торты", "06.11.2012", 5, 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Конфеты", "04.11.2012", 2, 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Конфеты", "05.11.2012", 4, 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Пряники", "04.11.2012", 5, 9 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Пряники", "05.11.2012", 2, 9 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Пряники", "06.11.2012", 1, 9 ; /////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1000 Т1.Товар, Т1.ДатаЗаказов, Т1.КолвоЗаказовНаДату, Т1.ТекОстаток, СУММА(Т2.КолвоЗаказовНаДату) КАК НарастИтог ПОМЕСТИТЬ ТаблНарастИтог ИЗ ИсхТабл КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсхТабл КАК Т2 ПО (Т1.Товар=Т2.Товар) И (Т1.ДатаЗаказов>=Т2.ДатаЗаказов) СГРУППИРОВАТЬ ПО Т1.Товар, Т1.ДатаЗаказов, Т1.КолвоЗаказовНаДату, Т1.ТекОстаток УПОРЯДОЧИТЬ ПО Т1.Товар, Т1.ДатаЗаказов ; /////////////////////////////////////////////////////////////////// ВЫБРАТЬ Товар, КОЛИЧЕСТВО(ДатаЗаказов) КАК Текущего_Остатка_Хватит_На_Столько_Дней ИЗ ТаблНарастИтог ГДЕ ТекОстаток>=НарастИтог СГРУППИРОВАТЬ ПО Товар УПОРЯДОЧИТЬ ПО Товар |