Имя: Пароль:
1C
1С v8
Запрос выносит базу с сообщением "Недостаточно памяти"
,
0 termos
 
27.04.14
19:59
Здравствуйте, Уважаемые!

У меня имеется проблема. Может кто сталкивался.
Суть проблемы следующая - есть УТ 11 (Платформа 8.3)
В базе занесено 1800 единиц номенклатуры и для этой номенклатуры используется 1400 характеристик (цвета, размеры).

При обмене с сайтом (обмен с сайтом модуль отсюда - http://1c.1c-bitrix.ru/ecommerce/) 1C съедает почти 4ГБ оперативки (из 6ГБ установленных) за минуту и вылетает с сообщением "Недостаточно памяти".
Проследив и найдя момент, где вылетает - я завис и не знаю как решить проблему...

Итак, 1С вылетает при выполнении следующего запроса:

    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка,
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        ХарактеристикиНоменклатуры.ПометкаУдаления,
        ХарактеристикиНоменклатуры.Наименование
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
            ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)
                И (&ИспользоватьХарактеристики)
                И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры))
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры

    
----------------------------------------------
Параметры при выполнении запроса передаются следующие:
ИспользуетсяОтборПоСегментуНоменклатуры = ложь;
ИспользоватьХарактеристики = истина;

Если в отдельном запросе выводить только номенклатуру или только характеристики - выводится без проблем, но при Внутреннем соединении с условием - сразу вылетает.

Вопрос - как быть? наращивать память? поможет ли это? или можно программным методом как то решить вопрос?

База данных весит 1,3 ГБ, файловый вариант.

Жду Ваших ответов. Помогите, пожалуйста. Посоветуйте решение.
1 Wobland
 
27.04.14
20:03
>Номенклатура.ФайлКартинки
это же ссылка на справочник?
2 Torquader
 
27.04.14
20:09
(1) Он же ссылку получает - чем это отличается от "ЕдиницаИзмерения" ?
3 mehfk
 
27.04.14
20:12
ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)

ИспользуетсяОтборПоСегментуНоменклатуры = ложь;


1800 * 1400 строк
4 mehfk
 
27.04.14
20:13
Отбой (3)
5 vlandev
 
27.04.14
20:13
Наращивание памяти в файловом варианте не поможет , память имело бы смысл наращивать в случае с 64 битным сервером предприятия в связке с SQL. В данном случае остается только как то переписать запрос что бы не было оверхеда.
6 termos
 
27.04.14
20:29
(5) vlandev, помогите, пожалуйста.  У меня даже мысли нет каким образом это сделать. И опыта в том числе.
7 mehfk
 
27.04.14
20:31
(6) Как отрабатывает такой запрос?
ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ПО (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры)
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры)
8 Torquader
 
27.04.14
20:35
Я бы сначала выбрал бы номенклатуру, нужную нам во временную таблицу (со всеми её данными). Потом выбрал бы интересующие нас характеристики (назначенные выбранной номеклатуре), потом выбрал бы все данные о характеристиках в таблицу, соединяя с выбранной таблицей номенклатуры.
В результате получил три таблицы - данные номенклатуры с индексом по ссылке, данные характеристик для номенклатуры по ссылке типа характеристики и связь характеристик с номенклатурой.
9 H A D G E H O G s
 
27.04.14
20:49
Выбрать первые 1000
блаблабла

ГДЕ Номенклатура.Ссылка>&ПоследняяВыбраннаяНоменклатура

Упорядочить по Ссылка

И так в цикле до морковкиного заговения
10 termos
 
27.04.14
21:10
(7) Абсолютно также. Раздувает память и вылетает. (8), (9) Возможно так и стоит сделать, но этот небольшой запрос находится в пакетном запросе вот в таком виде (он самый нижний и помимо этого запросика там таких много + самих запросов в пакете 27 что-ли):


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    СвободныеОстаткиОстатки.Характеристика КАК Характеристика,
    СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток КАК ВРезервеОстаток
ПОМЕСТИТЬ ВремОстатки
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(, ) КАК СвободныеОстаткиОстатки

ИНДЕКСИРОВАТЬ ПО
    СвободныеОстаткиОстатки.Номенклатура,
    СвободныеОстаткиОстатки.Характеристика,
    СвободныеОстаткиОстатки.ВНаличииОстаток
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    НоменклатураСХарактеристиками.Номенклатура КАК Номенклатура,
    НоменклатураСХарактеристиками.Характеристика КАК Характеристика,
    ВЫБОР
        КОГДА &ВыгружатьОстаткиСУчетомРезерва
            ТОГДА ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0)
        ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0)
    КОНЕЦ КАК Остаток,
    ЕСТЬNULL(РИ_ИдентификаторыНоменклатурыБитрикс.Идентификатор, "") КАК ИдНоменклатурыБитрикс,
    ЕСТЬNULL(РИ_ИдентификаторыХарактеристикНоменклатурыБитрикс.Идентификатор, "") КАК ИдХарактеристикиБитрикс,
    НоменклатураСХарактеристиками.ПометкаУдаления КАК ПометкаУдаления,
    НоменклатураСХарактеристиками.Родитель КАК Родитель,
    НоменклатураСХарактеристиками.ЭтоГруппа КАК ЭтоГруппа,
    НоменклатураСХарактеристиками.Код КАК Код,
    НоменклатураСХарактеристиками.Наименование КАК Наименование,
    НоменклатураСХарактеристиками.Артикул КАК Артикул,
    НоменклатураСХарактеристиками.Производитель КАК Производитель,
    НоменклатураСХарактеристиками.ПроизводительНаименование КАК ПроизводительНаименование,
    НоменклатураСХарактеристиками.ЦеноваяГруппа КАК ЦеноваяГруппа,
    НоменклатураСХарактеристиками.ВидНоменклатуры КАК ВидНоменклатуры,
    ВЫБОР
        КОГДА НоменклатураСХарактеристиками.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
            ТОГДА ЛОЖЬ
        ИНАЧЕ ИСТИНА
    КОНЕЦ КАК ИспользоватьХарактеристики,
    НоменклатураСХарактеристиками.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    НоменклатураСХарактеристиками.НаборУпаковок КАК НаборУпаковок,
    НоменклатураСХарактеристиками.СтавкаНДС КАК СтавкаНДС,
    НоменклатураСХарактеристиками.ТипНоменклатуры КАК ТипНоменклатуры,
    НоменклатураСХарактеристиками.ФайлКартинки КАК ФайлКартинки,
    НоменклатураСХарактеристиками.ХарактеристикаПометкаУдаления КАК ХарактеристикаПометкаУдаления
ПОМЕСТИТЬ ВремНоменклатураХарактеристики
ИЗ
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        Сегменты.Номенклатура КАК Номенклатура,
        Сегменты.Характеристика КАК Характеристика,
        Сегменты.Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
        Сегменты.Номенклатура.Родитель КАК Родитель,
        Сегменты.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
        Сегменты.Номенклатура.Код КАК Код,
        Сегменты.Номенклатура.Наименование КАК Наименование,
        Сегменты.Номенклатура.Артикул КАК Артикул,
        Сегменты.Номенклатура.Производитель КАК Производитель,
        Сегменты.Номенклатура.Производитель.Наименование КАК ПроизводительНаименование,
        Сегменты.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
        Сегменты.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
        Сегменты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        Сегменты.Номенклатура.НаборУпаковок КАК НаборУпаковок,
        Сегменты.Номенклатура.СтавкаНДС КАК СтавкаНДС,
        Сегменты.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
        Сегменты.Номенклатура.ФайлКартинки КАК ФайлКартинки,
        Сегменты.Характеристика.ПометкаУдаления КАК ХарактеристикаПометкаУдаления,
        Сегменты.Характеристика.Наименование КАК ХарактеристикаНаименование
    ИЗ
        РегистрСведений.НоменклатураСегмента КАК Сегменты
    ГДЕ
        &ИспользуетсяОтборПоСегментуНоменклатуры
        И НЕ Сегменты.Номенклатура.ЭтоГруппа
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка,
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        ХарактеристикиНоменклатуры.ПометкаУдаления,
        ХарактеристикиНоменклатуры.Наименование
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
            ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)
                И (&ИспользоватьХарактеристики)
                И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры))
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка
    
    ОБЪЕДИНИТЬ
// вот этот запрос ниже подвешивает платформу    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка,
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        ХарактеристикиНоменклатуры.ПометкаУдаления,
        ХарактеристикиНоменклатуры.Наименование
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
            ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)
                И (&ИспользоватьХарактеристики)
                И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры))
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры
    //здесь продолжается запрос
)
//далее размещены другие запросы этого пакетного запроса
11 mehfk
 
27.04.14
21:19
(10) Сколько строк ожидается в (7). Можете переписать запрос для получения только количества строк.
12 su_mai
 
27.04.14
21:49
(0) Нельзя соединяться с виртуальными таблицами, да еще когда условие содержит НЕ!
13 su_mai
 
27.04.14
21:51
+(12) Сори, это я не в тему. Но вообще правильно все сказал... :)
14 ИсчадиеADO
 
27.04.14
22:00
(10) а временные таблицы не чистятся? Твой кусок из 0 в консоли запросов выполняется?
15 termos
 
27.04.14
22:06
(14) Они чистятся далее в пакетном запросе. Тот кусок кода в (0) первом сообщении зависает и вылетает.

А вообще я посмотрел, что в итоге делает запрос. Он к каждой позиции номенклатуры приставляет характеристику номенклатуры для данного вида товара. Итого действительно получается 1800*1400 строк. как по другому сделать не представляю. да и зачем разработчики соединяют таким образом номенклатуру и характеристики..
16 termos
 
27.04.14
22:07
Могу выложить полностью запрос. Если это поможет решению задачи.
17 su_mai
 
27.04.14
22:10
(0) А конфа какая?
18 termos
 
27.04.14
22:13
(17) Управление торговлей, редакция 11.1 (11.1.4.10) , а платформа 1С:Предприятие 8.3 (8.3.4.408)
19 su_mai
 
27.04.14
22:17
Запрос самописный или типовой? Если типовой, то если ты джентльмен, то просто должен написать в 1С письмишко...

В плане оптимизации необходимо как ранее говорили номенклатуру и характеристики выбрать во временные таблицы по отбору и уже данные временных таблиц соединять внутренним соединением. Можно перекроить запрос и выбирать первые из ..., но это если логика позволяет.

А сколько памяти жрет?
20 su_mai
 
27.04.14
22:19
+(19) Сколько строк в номенклатуре и характеристиках?
21 termos
 
27.04.14
22:22
(19) (20), Запрос не от 1Сников. Этот запрос написали создатели обмена для 1С-Битрикс (http://1c.1c-bitrix.ru/ecommerce/).

Соответственно,  в 1С смысла писать нет.

В номенклатуре 1800 позиций, а в характеристиках 1400.
22 termos
 
27.04.14
22:23
(19) Памяти не стесняясь есть 4 ГБ. потом вылетает. :)
23 ИсчадиеADO
 
27.04.14
22:26
(22) а потом эта выборка где используется? может она позже ограничивается чем то?
24 su_mai
 
27.04.14
22:40
И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры)

Это полное г...

Нодо отобрать всю нужную номнклатуру заранее, а потом уже соединять.

А как сейчас, то для каждой строки соединения выполняется запрос получающий ВидНоменклатуры.ИспользованиеХарактеристик
25 termos
 
27.04.14
22:47
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    СвободныеОстаткиОстатки.Характеристика КАК Характеристика,
    СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток КАК ВРезервеОстаток
ПОМЕСТИТЬ ВремОстатки
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(, ) КАК СвободныеОстаткиОстатки

ИНДЕКСИРОВАТЬ ПО
    СвободныеОстаткиОстатки.Номенклатура,
    СвободныеОстаткиОстатки.Характеристика,
    СвободныеОстаткиОстатки.ВНаличииОстаток
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    НоменклатураСХарактеристиками.Номенклатура КАК Номенклатура,
    НоменклатураСХарактеристиками.Характеристика КАК Характеристика,
    ВЫБОР
        КОГДА &ВыгружатьОстаткиСУчетомРезерва
            ТОГДА ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0)
        ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0)
    КОНЕЦ КАК Остаток,
    ЕСТЬNULL(РИ_ИдентификаторыНоменклатурыБитрикс.Идентификатор, "") КАК ИдНоменклатурыБитрикс,
    ЕСТЬNULL(РИ_ИдентификаторыХарактеристикНоменклатурыБитрикс.Идентификатор, "") КАК ИдХарактеристикиБитрикс,
    НоменклатураСХарактеристиками.ПометкаУдаления КАК ПометкаУдаления,
    НоменклатураСХарактеристиками.Родитель КАК Родитель,
    НоменклатураСХарактеристиками.ЭтоГруппа КАК ЭтоГруппа,
    НоменклатураСХарактеристиками.Код КАК Код,
    НоменклатураСХарактеристиками.Наименование КАК Наименование,
    НоменклатураСХарактеристиками.Артикул КАК Артикул,
    НоменклатураСХарактеристиками.Производитель КАК Производитель,
    НоменклатураСХарактеристиками.ПроизводительНаименование КАК ПроизводительНаименование,
    НоменклатураСХарактеристиками.ЦеноваяГруппа КАК ЦеноваяГруппа,
    НоменклатураСХарактеристиками.ВидНоменклатуры КАК ВидНоменклатуры,
    ВЫБОР
        КОГДА НоменклатураСХарактеристиками.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
            ТОГДА ЛОЖЬ
        ИНАЧЕ ИСТИНА
    КОНЕЦ КАК ИспользоватьХарактеристики,
    НоменклатураСХарактеристиками.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    НоменклатураСХарактеристиками.НаборУпаковок КАК НаборУпаковок,
    НоменклатураСХарактеристиками.СтавкаНДС КАК СтавкаНДС,
    НоменклатураСХарактеристиками.ТипНоменклатуры КАК ТипНоменклатуры,
    НоменклатураСХарактеристиками.ФайлКартинки КАК ФайлКартинки,
    НоменклатураСХарактеристиками.ХарактеристикаПометкаУдаления КАК ХарактеристикаПометкаУдаления
ПОМЕСТИТЬ ВремНоменклатураХарактеристики
ИЗ
    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        Сегменты.Номенклатура КАК Номенклатура,
        Сегменты.Характеристика КАК Характеристика,
        Сегменты.Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
        Сегменты.Номенклатура.Родитель КАК Родитель,
        Сегменты.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
        Сегменты.Номенклатура.Код КАК Код,
        Сегменты.Номенклатура.Наименование КАК Наименование,
        Сегменты.Номенклатура.Артикул КАК Артикул,
        Сегменты.Номенклатура.Производитель КАК Производитель,
        Сегменты.Номенклатура.Производитель.Наименование КАК ПроизводительНаименование,
        Сегменты.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
        Сегменты.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
        Сегменты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        Сегменты.Номенклатура.НаборУпаковок КАК НаборУпаковок,
        Сегменты.Номенклатура.СтавкаНДС КАК СтавкаНДС,
        Сегменты.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
        Сегменты.Номенклатура.ФайлКартинки КАК ФайлКартинки,
        Сегменты.Характеристика.ПометкаУдаления КАК ХарактеристикаПометкаУдаления,
        Сегменты.Характеристика.Наименование КАК ХарактеристикаНаименование
    ИЗ
        РегистрСведений.НоменклатураСегмента КАК Сегменты
    ГДЕ
        &ИспользуетсяОтборПоСегментуНоменклатуры
        И НЕ Сегменты.Номенклатура.ЭтоГруппа
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка,
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        ХарактеристикиНоменклатуры.ПометкаУдаления,
        ХарактеристикиНоменклатуры.Наименование
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
            ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)
                И (&ИспользоватьХарактеристики)
                И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры))
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ХарактеристикиНоменклатуры.Ссылка,
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        ХарактеристикиНоменклатуры.ПометкаУдаления,
        ХарактеристикиНоменклатуры.Наименование
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
            ПО (НЕ &ИспользуетсяОтборПоСегментуНоменклатуры)
                И (&ИспользоватьХарактеристики)
                И (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры))
                И ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        Номенклатура.Ссылка,
        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка),
        Номенклатура.ПометкаУдаления,
        Номенклатура.Родитель,
        Номенклатура.ЭтоГруппа,
        Номенклатура.Код,
        Номенклатура.Наименование,
        Номенклатура.Артикул,
        Номенклатура.Производитель,
        Номенклатура.Производитель.Наименование,
        Номенклатура.ЦеноваяГруппа,
        Номенклатура.ВидНоменклатуры,
        Номенклатура.ЕдиницаИзмерения,
        Номенклатура.НаборУпаковок,
        Номенклатура.СтавкаНДС,
        Номенклатура.ТипНоменклатуры,
        Номенклатура.ФайлКартинки,
        NULL,
        NULL
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        НЕ &ИспользуетсяОтборПоСегментуНоменклатуры
        И НЕ Номенклатура.ЭтоГруппа) КАК НоменклатураСХарактеристиками
        ЛЕВОЕ СОЕДИНЕНИЕ ВремОстатки КАК СвободныеОстаткиОстатки
        ПО НоменклатураСХарактеристиками.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
            И НоменклатураСХарактеристиками.Характеристика = СвободныеОстаткиОстатки.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РИ_ИдентификаторыНоменклатурыБитрикс КАК РИ_ИдентификаторыНоменклатурыБитрикс
        ПО НоменклатураСХарактеристиками.Номенклатура = РИ_ИдентификаторыНоменклатурыБитрикс.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РИ_ИдентификаторыХарактеристикНоменклатурыБитрикс КАК РИ_ИдентификаторыХарактеристикНоменклатурыБитрикс
        ПО НоменклатураСХарактеристиками.Характеристика = РИ_ИдентификаторыХарактеристикНоменклатурыБитрикс.Объект

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика,
    ЦеноваяГруппа,
    Родитель
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СоглашенияСКлиентами.Ссылка КАК Ссылка,
    СоглашенияСКлиентами.НалогообложениеНДС КАК НалогообложениеНДС,
    СоглашенияСКлиентами.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
    СоглашенияСКлиентами.ВидЦен КАК ВидЦен,
    СоглашенияСКлиентами.Валюта КАК Валюта
ПОМЕСТИТЬ ВремСоглашения
ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
ГДЕ
    СоглашенияСКлиентами.Типовое
    И СоглашенияСКлиентами.ДоступноВнешнимПользователям
    И СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    И СоглашенияСКлиентами.СегментПартнеров = ЗНАЧЕНИЕ(Справочник.СегментыПартнеров.ПустаяСсылка)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВремНоменклатураХарактеристики.Номенклатура КАК Номенклатура,
    ВремНоменклатураХарактеристики.Характеристика КАК Характеристика,
    ВремНоменклатураХарактеристики.ИдНоменклатурыБитрикс КАК ИдНоменклатурыБитрикс,
    ВремНоменклатураХарактеристики.ИдХарактеристикиБитрикс КАК ИдХарактеристикиБитрикс,
    ВремНоменклатураХарактеристики.Остаток КАК Остаток,
    СоглашениеШапка.Ссылка КАК Соглашение,
    СоглашениеТовары.Упаковка КАК Упаковка,
    СоглашениеШапка.НалогообложениеНДС КАК НалогообложениеНДС,
    СоглашениеШапка.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
    СоглашениеШапка.Валюта КАК ВалютаСоглашения,
    ВЫБОР
        КОГДА ЕСТЬNULL(СоглашениеТовары.Цена, 0) > 0
            ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
        КОГДА СоглашениеТовары.ВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
                И СоглашениеТовары.ВидЦены ЕСТЬ НЕ NULL
            ТОГДА СоглашениеТовары.ВидЦены
        КОГДА (СоглашениеТовары.ВидЦены = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
                ИЛИ СоглашениеТовары.ВидЦены ЕСТЬ NULL )
                И СоглашениеЦеновыеГруппы.ВидЦен ЕСТЬ НЕ NULL
                И СоглашениеЦеновыеГруппы.ВидЦен <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
            ТОГДА СоглашениеЦеновыеГруппы.ВидЦен
        КОГДА (СоглашениеТовары.ВидЦены = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
                ИЛИ СоглашениеТовары.ВидЦены ЕСТЬ NULL )
                И (СоглашениеЦеновыеГруппы.ВидЦен ЕСТЬ NULL
                    ИЛИ СоглашениеЦеновыеГруппы.ВидЦен = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка))
                И СоглашениеШапка.ВидЦен <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
            ТОГДА СоглашениеШапка.ВидЦен
    КОНЕЦ КАК ВидЦены,
    ЕСТЬNULL(СоглашениеТовары.Цена, 0) КАК Цена,
    ВремНоменклатураХарактеристики.ПометкаУдаления КАК ПометкаУдаления,
    ВремНоменклатураХарактеристики.Родитель КАК Родитель,
    ВремНоменклатураХарактеристики.ЭтоГруппа КАК ЭтоГруппа,
    ВремНоменклатураХарактеристики.Код КАК Код,
    ВремНоменклатураХарактеристики.Наименование КАК Наименование,
    ВремНоменклатураХарактеристики.Артикул КАК Артикул,
    ВремНоменклатураХарактеристики.Производитель КАК Производитель,
    ВремНоменклатураХарактеристики.ПроизводительНаименование КАК ПроизводительНаименование,
    ВремНоменклатураХарактеристики.ВидНоменклатуры КАК ВидНоменклатуры,
    ВремНоменклатураХарактеристики.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики,
    ВремНоменклатураХарактеристики.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВремНоменклатураХарактеристики.НаборУпаковок КАК НаборУпаковок,
    ВремНоменклатураХарактеристики.СтавкаНДС КАК НоменклатураСтавкаНДС,
    ВремНоменклатураХарактеристики.ТипНоменклатуры КАК ТипНоменклатуры,
    ВремНоменклатураХарактеристики.ФайлКартинки КАК ФайлКартинки,
    ВремНоменклатураХарактеристики.ХарактеристикаПометкаУдаления КАК ХарактеристикаПометкаУдаления
ПОМЕСТИТЬ ВремЦеныПоСоглашениям
ИЗ
    ВремНоменклатураХарактеристики КАК ВремНоменклатураХарактеристики
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремСоглашения КАК СоглашениеШапка
        ПО (ИСТИНА)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСКлиентами.Товары КАК СоглашениеТовары
        ПО (СоглашениеШапка.Ссылка = СоглашениеТовары.Ссылка)
            И ВремНоменклатураХарактеристики.Номенклатура = СоглашениеТовары.Номенклатура
            И ВремНоменклатураХарактеристики.Характеристика = СоглашениеТовары.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСКлиентами.ЦеновыеГруппы КАК СоглашениеЦеновыеГруппы
        ПО (СоглашениеШапка.Ссылка = СоглашениеЦеновыеГруппы.Ссылка)
            И ВремНоменклатураХарактеристики.ЦеноваяГруппа = СоглашениеЦеновыеГруппы.ЦеноваяГруппа

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика,
    ВидЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныСрезПоследних.ВидЦены КАК ВидЦены,
    ЦеныСрезПоследних.Характеристика КАК Характеристика,
    ЦеныСрезПоследних.Цена КАК Цена,
    ЦеныСрезПоследних.Упаковка КАК Упаковка,
    ЦеныСрезПоследних.Валюта КАК Валюта
ПОМЕСТИТЬ ВремЦеныСрезПоследних
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            ,
            (Номенклатура, Характеристика) В
                (ВЫБРАТЬ
                    ВремНоменклатураХарактеристики.Номенклатура,
                    ВремНоменклатураХарактеристики.Характеристика
                ИЗ
                    ВремНоменклатураХарактеристики КАК ВремНоменклатураХарактеристики)) КАК ЦеныСрезПоследних

ИНДЕКСИРОВАТЬ ПО
    ЦеныСрезПоследних.Номенклатура,
    ЦеныСрезПоследних.Характеристика,
    ЦеныСрезПоследних.ВидЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ВремЦеныПоСоглашениям.Соглашение КАК Соглашение,
    ВремЦеныПоСоглашениям.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
    ВремЦеныПоСоглашениям.Номенклатура КАК Номенклатура,
    ВремЦеныПоСоглашениям.ИдНоменклатурыБитрикс КАК ИдНоменклатурыБитрикс,
    ВремЦеныПоСоглашениям.ПометкаУдаления КАК ПометкаУдаления,
    ВремЦеныПоСоглашениям.Родитель КАК Родитель,
    ВремЦеныПоСоглашениям.ЭтоГруппа КАК ЭтоГруппа,
    ВремЦеныПоСоглашениям.Код КАК Код,
    ВремЦеныПоСоглашениям.Наименование КАК Наименование,
    ВремЦеныПоСоглашениям.Артикул КАК Артикул,
    ВремЦеныПоСоглашениям.Производитель КАК Производитель,
    ВремЦеныПоСоглашениям.ПроизводительНаименование КАК ПроизводительНаименование,
    ВремЦеныПоСоглашениям.ВидНоменклатуры КАК ВидНоменклатуры,
    ВремЦеныПоСоглашениям.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики,
    ВремЦеныПоСоглашениям.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВремЦеныПоСоглашениям.НаборУпаковок КАК НаборУпаковок,
    ВремЦеныПоСоглашениям.НоменклатураСтавкаНДС КАК НоменклатураСтавкаНДС,
    ВремЦеныПоСоглашениям.ТипНоменклатуры КАК ТипНоменклатуры,
    ВремЦеныПоСоглашениям.ФайлКартинки КАК ФайлКартинки,
    ВремЦеныПоСоглашениям.Характеристика КАК Характеристика,
    ВремЦеныПоСоглашениям.ИдХарактеристикиБитрикс КАК ИдХарактеристикиБитрикс,
    ВремЦеныПоСоглашениям.Остаток КАК Остаток,
    ВремЦеныПоСоглашениям.ВидЦены КАК ВидЦены,
    ВремЦеныПоСоглашениям.ВалютаСоглашения КАК ВалютаСоглашения,
    ВремЦеныПоСоглашениям.ХарактеристикаПометкаУдаления КАК ХарактеристикаПометкаУдаления,
    ВЫБОР
        КОГДА ВремЦеныПоСоглашениям.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
            ТОГДА ВремЦеныПоСоглашениям.Номенклатура.СтавкаНДС
        КОГДА ВремЦеныПоСоглашениям.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
        ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
    КОНЕЦ КАК СтавкаНДС,
    ВЫБОР
        КОГДА ВремЦеныПоСоглашениям.Цена > 0
            ТОГДА ВремЦеныПоСоглашениям.Упаковка
        КОГДА ВремЦеныПоСоглашениям.ВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
                И ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0
            ТОГДА ЦеныНоменклатурыСрезПоследних.Упаковка
        ИНАЧЕ ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    КОНЕЦ КАК Упаковка,
    ВЫБОР
        КОГДА ВремЦеныПоСоглашениям.Цена > 0
            ТОГДА ВремЦеныПоСоглашениям.Цена
        КОГДА ВремЦеныПоСоглашениям.ВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
                И ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        ИНАЧЕ 0
    КОНЕЦ КАК Цена
ПОМЕСТИТЬ ВремЦены
ИЗ
    ВремЦеныПоСоглашениям КАК ВремЦеныПоСоглашениям
        ЛЕВОЕ СОЕДИНЕНИЕ ВремЦеныСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО ВремЦеныПоСоглашениям.ВидЦены = ЦеныНоменклатурыСрезПоследних.ВидЦены
            И ВремЦеныПоСоглашениям.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ВремЦеныПоСоглашениям.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВремЦены.Номенклатура КАК Номенклатура,
    ВремЦены.Характеристика КАК Характеристика,
    МАКСИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ПОМЕСТИТЬ ВремШтрихкодыДляЦен
ИЗ
    ВремЦены КАК ВремЦены
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО ВремЦены.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
            И ВремЦены.Характеристика = ШтрихкодыНоменклатуры.Характеристика

СГРУППИРОВАТЬ ПО
    ВремЦены.Номенклатура,
    ВремЦены.Характеристика

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВремЦены.Номенклатура КАК Номенклатура,
    ВремЦены.Характеристика КАК Характеристика
ПОМЕСТИТЬ ВремТоварыДляОстатков
ИЗ
    ВремЦены КАК ВремЦены

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Характеристика КАК Характеристика,
    Остатки.ВНаличииОстаток КАК ВНаличииОстаток,
    Остатки.ВРезервеСоСкладаОстаток + Остатки.ВРезервеПодЗаказОстаток КАК ВРезервеОстаток,
    Остатки.Склад КАК Склад
ПОМЕСТИТЬ ВремОстаткиПоСкладам
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ВремТоварыДляОстатков.Номенклатура
                ИЗ
                    ВремТоварыДляОстатков)) КАК Остатки

ИНДЕКСИРОВАТЬ ПО
    Остатки.Номенклатура,
    Остатки.Характеристика
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Склады.Ссылка КАК СкладОстатки,
    Склады.КонтактнаяИнформация.(
        
    ) КАК СкладОстаткиКонтактнаяИнформация
ИЗ
    Справочник.Склады КАК Склады
ГДЕ
    НЕ Склады.ЭтоГруппа
    И НЕ Склады.ПометкаУдаления

УПОРЯДОЧИТЬ ПО
    Склады.Наименование
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыДляОстатков.Номенклатура КАК Номенклатура,
    ТоварыДляОстатков.Характеристика КАК Характеристика,
    ВЫБОР
        КОГДА &ВыгружатьОстаткиСУчетомРезерва
            ТОГДА СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток
        ИНАЧЕ СвободныеОстаткиОстатки.ВНаличииОстаток
    КОНЕЦ КАК Остаток,
    СвободныеОстаткиОстатки.Склад КАК СкладОстатки
ИЗ
    ВремТоварыДляОстатков КАК ТоварыДляОстатков
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремОстаткиПоСкладам КАК СвободныеОстаткиОстатки
        ПО ТоварыДляОстатков.Номенклатура = СвободныеОстаткиОстатки.Номенклатура
            И ТоварыДляОстатков.Характеристика = СвободныеОстаткиОстатки.Характеристика

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика,
    СкладОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Цены.Соглашение КАК Соглашение,
    Цены.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
    Цены.Номенклатура КАК Номенклатура,
    Цены.ИдНоменклатурыБитрикс КАК ИдНоменклатурыБитрикс,
    Цены.ПометкаУдаления КАК ПометкаУдаления,
    Цены.Родитель КАК Родитель,
    Цены.ЭтоГруппа КАК ЭтоГруппа,
    Цены.Код КАК Код,
    Цены.Наименование КАК Наименование,
    Цены.Артикул КАК Артикул,
    Цены.Производитель КАК Производитель,
    Цены.ПроизводительНаименование КАК ПроизводительНаименование,
    Цены.ВидНоменклатуры КАК ВидНоменклатуры,
    Цены.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики,
    Цены.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    Цены.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
    Цены.ЕдиницаИзмерения.НаименованиеПолное КАК ЕдиницаИзмеренияНаименованиеПолное,
    Цены.ЕдиницаИзмерения.МеждународноеСокращение КАК ЕдиницаИзмеренияМеждународноеСокращение,
    Цены.НаборУпаковок КАК НаборУпаковок,
    Цены.НоменклатураСтавкаНДС КАК НоменклатураСтавкаНДС,
    Цены.ТипНоменклатуры КАК ТипНоменклатуры,
    Цены.ФайлКартинки КАК ФайлКартинки,
    Цены.Характеристика КАК Характеристика,
    Цены.ИдХарактеристикиБитрикс КАК ИдХарактеристикиБитрикс,
    Цены.ХарактеристикаПометкаУдаления КАК ХарактеристикаПометкаУдаления,
    Цены.Остаток КАК Остаток,
    Цены.ВидЦены КАК ВидЦены,
    Цены.ВалютаСоглашения КАК ВалютаСоглашения,
    Цены.СтавкаНДС КАК СтавкаНДС,
    Цены.Упаковка КАК Упаковка,
    Цены.Упаковка.Коэффициент КАК УпаковкаКоэффициент,
    Цены.Упаковка.Вес КАК УпаковкаВес,
    Цены.Цена КАК Цена,
    ЕСТЬNULL(ВремШтрихкодыДляЦен.Штрихкод, "") КАК Штрихкод,
    ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК СкладОстатки,
    NULL КАК СкладОстаткиКонтактнаяИнформация
ИЗ
    ВремЦены КАК Цены
        ЛЕВОЕ СОЕДИНЕНИЕ ВремШтрихкодыДляЦен КАК ВремШтрихкодыДляЦен
        ПО Цены.Номенклатура = ВремШтрихкодыДляЦен.Номенклатура
            И Цены.Характеристика = ВремШтрихкодыДляЦен.Характеристика
ГДЕ
    Цены.Цена > 0

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика
;
УНИЧТОЖИТЬ ВремЦеныПоСоглашениям
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремШтрихкодыДляЦен
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВремЦены.Соглашение КАК Соглашение,
    ВремЦены.ВалютаСоглашения КАК ВалютаСоглашения,
    ВремЦены.ЦенаВключаетНДС КАК ЦенаВключаетНДС
ИЗ
    ВремЦены КАК ВремЦены
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВремЦены.Характеристика КАК Характеристика,
    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство,
    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение
ИЗ
    ВремЦены КАК ВремЦены
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
        ПО ВремЦены.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
ИТОГИ ПО
    Характеристика
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремЦены
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремОстаткиПоСкладам
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РИ_ИдентификаторыНоменклатурыБитрикс.Объект КАК Объект,
    РИ_ИдентификаторыНоменклатурыБитрикс.Идентификатор
ПОМЕСТИТЬ ВремИдГруппБитрикс
ИЗ
    РегистрСведений.РИ_ИдентификаторыНоменклатурыБитрикс КАК РИ_ИдентификаторыНоменклатурыБитрикс
ГДЕ
    РИ_ИдентификаторыНоменклатурыБитрикс.Объект.ЭтоГруппа

ИНДЕКСИРОВАТЬ ПО
    Объект
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВремИдГруппБитрикс.Объект,
    ВремИдГруппБитрикс.Идентификатор
ИЗ
    ВремИдГруппБитрикс КАК ВремИдГруппБитрикс
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВремНоменклатураХарактеристики.Номенклатура КАК Номенклатура,
    ВремНоменклатураХарактеристики.ИдНоменклатурыБитрикс КАК ИдНоменклатурыБитрикс,
    ВремНоменклатураХарактеристики.ПометкаУдаления КАК ПометкаУдаления,
    ВремНоменклатураХарактеристики.Родитель КАК Родитель,
    ВремНоменклатураХарактеристики.Код КАК Код,
    ВремНоменклатураХарактеристики.Наименование КАК Наименование,
    ВремНоменклатураХарактеристики.Артикул КАК Артикул,
    ВремНоменклатураХарактеристики.Производитель КАК Производитель,
    ВремНоменклатураХарактеристики.ПроизводительНаименование КАК ПроизводительНаименование,
    ВремНоменклатураХарактеристики.ВидНоменклатуры КАК ВидНоменклатуры,
    ВремНоменклатураХарактеристики.ВидНоменклатуры.НаборСвойств КАК НаборСвойств,
    ВремНоменклатураХарактеристики.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики,
    ВремНоменклатураХарактеристики.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВремНоменклатураХарактеристики.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
    ВремНоменклатураХарактеристики.ЕдиницаИзмерения.НаименованиеПолное КАК ЕдиницаИзмеренияНаименованиеПолное,
    ВремНоменклатураХарактеристики.ЕдиницаИзмерения.МеждународноеСокращение КАК ЕдиницаИзмеренияМеждународноеСокращение,
    ВремНоменклатураХарактеристики.НаборУпаковок КАК НаборУпаковок,
    ВремНоменклатураХарактеристики.СтавкаНДС КАК СтавкаНДС,
    ВремНоменклатураХарактеристики.ТипНоменклатуры КАК ТипНоменклатуры,
    ВремНоменклатураХарактеристики.ФайлКартинки КАК ФайлКартинки,
    ЕСТЬNULL(ВремИдГруппБитрикс.Идентификатор, "") КАК ИдГруппыБитрикс
ПОМЕСТИТЬ ВремНоменклатура
ИЗ
    ВремНоменклатураХарактеристики КАК ВремНоменклатураХарактеристики
        ЛЕВОЕ СОЕДИНЕНИЕ ВремИдГруппБитрикс КАК ВремИдГруппБитрикс
        ПО ВремНоменклатураХарактеристики.Родитель = ВремИдГруппБитрикс.Объект

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    НаборСвойств,
    НаборУпаковок
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремНоменклатураХарактеристики
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремИдГруппБитрикс
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ВремНоменклатура.Номенклатура КАК Номенклатура,
    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство КАК Свойство,
    "" КАК ИдСвойстваБитрикс
ПОМЕСТИТЬ ВремСвойства
ИЗ
    Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремНоменклатура КАК ВремНоменклатура
        ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка = ВремНоменклатура.НаборСвойств

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВремНоменклатура.Номенклатура,
    НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство,
    ""
ИЗ
    Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремНоменклатура КАК ВремНоменклатура
        ПО (НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура_Общие))

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДопСведения.Номенклатура,
    ДопСведения.Свойство,
    ЕСТЬNULL(РИ_ИдентификаторыСвойствНоменк
26 termos
 
27.04.14
22:48
йства

УПОРЯДОЧИТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремЗначенияСвойствНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Упаковки.Номенклатура КАК Номенклатура,
    Упаковки.НаборУпаковок КАК НаборУпаковок,
    МИНИМУМ(Упаковки.Коэффициент) КАК Коэффициент
ПОМЕСТИТЬ ВремУпаковки
ИЗ
    (ВЫБРАТЬ
        ВремНоменклатура.Номенклатура КАК Номенклатура,
        ВремНоменклатура.НаборУпаковок КАК НаборУпаковок,
        УпаковкиНоменклатуры.Коэффициент КАК Коэффициент
    ИЗ
        ВремНоменклатура КАК ВремНоменклатура
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК УпаковкиНоменклатуры
            ПО ВремНоменклатура.НаборУпаковок = УпаковкиНоменклатуры.Владелец
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        ВремНоменклатура.Номенклатура,
        ВремНоменклатура.НаборУпаковок,
        УпаковкиНоменклатуры.Коэффициент
    ИЗ
        ВремНоменклатура КАК ВремНоменклатура
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК УпаковкиНоменклатуры
            ПО (ВремНоменклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры))
                И ВремНоменклатура.Номенклатура = УпаковкиНоменклатуры.Владелец) КАК Упаковки

СГРУППИРОВАТЬ ПО
    Упаковки.Номенклатура,
    Упаковки.НаборУпаковок

ИНДЕКСИРОВАТЬ ПО
    НаборУпаковок,
    Коэффициент,
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Упаковки.Номенклатура КАК Номенклатура,
    Упаковки.Упаковка КАК Упаковка,
    Упаковки.Упаковка.Коэффициент КАК Коэффициент,
    Упаковки.Упаковка.Вес КАК Вес,
    Упаковки.Упаковка.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ПОМЕСТИТЬ ВремУпаковкиНоменклатуры
ИЗ
    (ВЫБРАТЬ
        УпаковкиВложенный.Номенклатура КАК Номенклатура,
        МАКСИМУМ(УпаковкиВложенный.Упаковка) КАК Упаковка
    ИЗ
        (ВЫБРАТЬ
            ВремУпаковки.Номенклатура КАК Номенклатура,
            УпаковкиНоменклатуры.Ссылка КАК Упаковка
        ИЗ
            ВремУпаковки КАК ВремУпаковки
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК УпаковкиНоменклатуры
                ПО ВремУпаковки.Коэффициент = УпаковкиНоменклатуры.Коэффициент
                    И ВремУпаковки.НаборУпаковок = УпаковкиНоменклатуры.Владелец
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ВремУпаковки.Номенклатура,
            УпаковкиНоменклатуры.Ссылка
        ИЗ
            ВремУпаковки КАК ВремУпаковки
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК УпаковкиНоменклатуры
                ПО ВремУпаковки.Коэффициент = УпаковкиНоменклатуры.Коэффициент
                    И (ВремУпаковки.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры))
                    И ВремУпаковки.Номенклатура = УпаковкиНоменклатуры.Владелец) КАК УпаковкиВложенный
    
    СГРУППИРОВАТЬ ПО
        УпаковкиВложенный.Номенклатура) КАК Упаковки
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремУпаковки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВремНоменклатура.Номенклатура КАК Номенклатура,
    НоменклатураПрисоединенныеФайлы.Ссылка КАК Файл,
    НоменклатураПрисоединенныеФайлы.Наименование КАК Наименование,
    НоменклатураПрисоединенныеФайлы.Описание КАК Описание,
    НоменклатураПрисоединенныеФайлы.Том КАК Том,
    НоменклатураПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла,
    НоменклатураПрисоединенныеФайлы.Расширение КАК Расширение,
    НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу,
    ПрисоединенныеФайлы.ХранимыйФайл КАК ХранимыйФайл
ПОМЕСТИТЬ ВремФайлы
ИЗ
    ВремНоменклатура КАК ВремНоменклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныеФайлы
            ПО НоменклатураПрисоединенныеФайлы.Ссылка = ПрисоединенныеФайлы.ПрисоединенныйФайл
                И (НоменклатураПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе))
        ПО (НоменклатураПрисоединенныеФайлы.ВладелецФайла = ВремНоменклатура.Номенклатура)
            И (НЕ НоменклатураПрисоединенныеФайлы.ПометкаУдаления)

ИНДЕКСИРОВАТЬ ПО
    Файл
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВремФайлы.Номенклатура,
    ВремФайлы.Файл,
    ВремФайлы.Наименование,
    ВремФайлы.Описание,
    ВремФайлы.Том,
    ВремФайлы.ТипХраненияФайла,
    ВремФайлы.Расширение,
    ВремФайлы.ПутьКФайлу,
    ВремФайлы.ХранимыйФайл
ИЗ
    ВремФайлы КАК ВремФайлы
ГДЕ
    НЕ &ОтбиратьФайлы

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВремФайлы.Номенклатура,
    ВремФайлы.Файл,
    ВремФайлы.Наименование,
    ВремФайлы.Описание,
    ВремФайлы.Том,
    ВремФайлы.ТипХраненияФайла,
    ВремФайлы.Расширение,
    ВремФайлы.ПутьКФайлу,
    ВремФайлы.ХранимыйФайл
ИЗ
    ВремФайлы КАК ВремФайлы
ГДЕ
    &ОтбиратьФайлы
    И ВремФайлы.Файл В(&МассивФайлов)

УПОРЯДОЧИТЬ ПО
    ВремФайлы.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремФайлы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВремНоменклатура.Номенклатура КАК Номенклатура,
    МАКСИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод
ПОМЕСТИТЬ ВремШтрихкодыДляКаталога
ИЗ
    ВремНоменклатура КАК ВремНоменклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО ВремНоменклатура.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
            И (ШтрихкодыНоменклатуры.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))

СГРУППИРОВАТЬ ПО
    ВремНоменклатура.Номенклатура

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    Организации.Ссылка КАК Контрагент,
    Организации.Наименование,
    Организации.НаименованиеПолное,
    Организации.ЮрФизЛицо,
    Организации.ИНН,
    Организации.КПП,
    Организации.КодПоОКПО,
    Организации.КонтактнаяИнформация.(
        Тип КАК Тип,
        Вид КАК Вид,
        Представление КАК Представление,
        ЗначенияПолей КАК ЗначенияПолей
    )
ИЗ
    Справочник.Организации КАК Организации
ГДЕ
    Организации.Ссылка = &ОрганизацияВладелецКаталога
;
ВЫБРАТЬ
    ВремНоменклатура.Номенклатура КАК Номенклатура,
    ВремНоменклатура.ИдНоменклатурыБитрикс КАК ИдНоменклатурыБитрикс,
    ВремНоменклатура.ПометкаУдаления КАК ПометкаУдаления,
    ВремНоменклатура.Родитель КАК Родитель,
    ВремНоменклатура.Код КАК Код,
    ВремНоменклатура.Наименование КАК Наименование,
    ВремНоменклатура.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    ВремНоменклатура.Номенклатура.Описание КАК Описание,
    ВремНоменклатура.Номенклатура.ФайлОписанияДляСайта КАК ФайлОписанияДляСайта,
    ВремНоменклатура.Артикул КАК Артикул,
    ВремНоменклатура.Производитель КАК Производитель,
    ВремНоменклатура.ПроизводительНаименование КАК ПроизводительНаименование,
    ВремНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    ВремНоменклатура.ИспользоватьХарактеристики,
    ВремНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВремНоменклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
    ВремНоменклатура.ЕдиницаИзмерения.НаименованиеПолное КАК ЕдиницаИзмеренияНаименованиеПолное,
    ВремНоменклатура.ЕдиницаИзмерения.МеждународноеСокращение КАК ЕдиницаИзмеренияМеждународноеСокращение,
    ВремНоменклатура.НаборУпаковок КАК НаборУпаковок,
    ВремНоменклатура.СтавкаНДС КАК СтавкаНДС,
    ВремНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
    ВремНоменклатура.ФайлКартинки КАК ФайлКартинки,
    ВремНоменклатура.ИдГруппыБитрикс КАК ИдГруппыБитрикс,
    ЕСТЬNULL(ВремШтрихкодыДляКаталога.Штрихкод, "") КАК Штрихкод,
    ВремУпаковкиНоменклатуры.Упаковка КАК Упаковка,
    ВремУпаковкиНоменклатуры.Коэффициент КАК Коэффициент,
    ВремУпаковкиНоменклатуры.Вес КАК Вес,
    ВремУпаковкиНоменклатуры.ЕдиницаИзмерения КАК УпаковкаЕдиницаИзмерения
ИЗ
    ВремНоменклатура КАК ВремНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ВремШтрихкодыДляКаталога КАК ВремШтрихкодыДляКаталога
        ПО ВремНоменклатура.Номенклатура = ВремШтрихкодыДляКаталога.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ВремУпаковкиНоменклатуры КАК ВремУпаковкиНоменклатуры
        ПО ВремНоменклатура.Номенклатура = ВремУпаковкиНоменклатуры.Номенклатура

УПОРЯДОЧИТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремУпаковкиНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремШтрихкодыДляКаталога
;
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВремНоменклатура.Номенклатура КАК Номенклатура,
    ВремНоменклатура.Номенклатура.ЭтоГруппа КАК ЭтоГруппа
ИЗ
    ВремНоменклатура КАК ВремНоменклатура
ИТОГИ ПО
    Номенклатура ТОЛЬКО ИЕРАРХИЯ
АВТОУПОРЯДОЧИВАНИЕ



Это полный запрос.
27 termos
 
27.04.14
22:49
Далее выгрузка не ограничивается, а используется для выгрузки в xml файл (чтобы потом сайт подцепил эту выгрузку и загрузил к себе в каталог).
28 su_mai
 
27.04.14
22:52
(22) Попробуй соединить всю номенклатуру со всеми характеристиками только по владельцу, в привилегированном режиме (без контроля РЛС). В выборку включи только две ссылки на номенклатуру и на характеристику.

Настрой формирования технологического журнала для твоей базы и посмотри какой запрос формирует 1С. Если база файловая, то необходимо поставить галочку "Запрос к базе данных" - "Оператор SQL"
29 termos
 
28.04.14
00:43
(28) Настроил технологический журнал. Посмотрел последний запрос к БД во время краша приложения.. ничего путного мне эта информация не подсказала. Километровый запрос.
Настраивал так: запустил обработку настройки технологического журнала, сформировал xml файл на все события, получил логи, а в них обращение к БД с километровым запросом. Либо я сделал что-то не так, либо это нормально.

su_mai, я на сегодняшний день пока дилетант в 1С. каким образом сделать то, что ты предложил в первом предложении?
как сделать запрос знаю, а каким образом в привилегированном режиме этот запрос запустить? через новую обработку с УстановитьПривилегированныйРежим?
30 termos
 
28.04.14
00:43
Заранее благодарю за ответ!
Закон Брукера: Даже маленькая практика стоит большой теории.