Имя: Пароль:
1C
 
Выборка данных для выгрузки из УТ 11.3.4.162
0 falselight
 
31.07.18
13:56
Добрый день!
Подскажите пожалуйста по правильности выборки из конфигурации УТ 11.3. Нужно сделать выборку следующих полей:

1).  Name       - Наименование справочника номенклатура  
2).  Maker      - Производитель из справочника номенклатура
3).  Country    - Страна, добавить в дополнительные реквизиты
4).  Fas        - Количество пачек в коробке добавить в дополнительные реквизиты
5).  Price      - Из регистра сведений цены номенклатуры
6).  Price_min  - Из регистра сведений цены номенклатуры
7).  Price_max  - Из регистра сведений цены номенклатуры
8).  Kol_vo     - Регистр накопления товары на складах
9).  Date_god   - Дата окончания срока годности из номенклатуры
10). Pr_ree     - Реестровая цена, добавить в дополнительные реквизиты  
11). Kod        - Код товара
12). Seria      - Серия
13). Zakaz_min  - Минимальная партия заказа
14). Zakaz_krat - Кратность заказа
15). Ean13       - Штрихкод из регистра сведений ШтрихКодыНоменклатуры
16). Cnote       - Описание товара из справочника номенклатура  

Интересует от куда правильно выбирать поля:

12). Seria      - Серия
13). Zakaz_min  - Минимальная партия заказа
14). Zakaz_krat - Кратность заказа


И как правильно выбирать дополнительные поля, занесенные в дополнительные реквизиты.
1 Lexey_
 
31.07.18
14:10
(0) сколько тебе заплатят за решение этой задачи?
2 falselight
 
31.07.18
15:54
Уважаемые ребята, подскажите по следующему вопросу:

Как мне извлечь запросом дополнительные реквизиты которые я создал и привязал к элементу справочника номенклатура????
Я нигде их не нашел (((((( Подскажите наверняка?
3 Lexey_
 
31.07.18
16:18
(2) че гадать? смотри в конфе
4 ildary
 
31.07.18
16:42
Расскажите о ваших действиях в конфигураторе - куда зяглядывали, что нашли? Что сказали гугл и яндекс на запрос "1С8 БСП дополнительные реквизиты"?
5 falselight
 
31.07.18
16:51
(4) Нашел. Справочник.Номенклатура.ДополнительныеРеквизиты
Но как от туда правильно выбрать??????
Так не выбирает.



ВЫБРАТЬ
    Номенклатура.Наименование,
    Номенклатура.Производитель,
    Номенклатура.СрокГодности,
    Номенклатура.Код,
    Номенклатура.Ссылка КАК Ссылка1,
    НоменклатураДополнительныеРеквизиты.Ссылка,
    НоменклатураДополнительныеРеквизиты.Свойство,
    НоменклатураДополнительныеРеквизиты.Значение
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ПО Номенклатура.Ссылка = НоменклатураДополнительныеРеквизиты.Свойство
6 falselight
 
31.07.18
16:54
(5) Соединения менял всяко разно.
Выбирается но не в связке. Как то не так добавилось что ли.
7 falselight
 
31.07.18
16:55
Как правильно выбрать?


http://joxi.ru/DmB8nRGCwWbqBA
8 novichok79
 
31.07.18
16:55
ПО Номенклатура.Ссылка = НоменклатураДополнительныеРеквизиты.Ссылка?
а вообще есть замечательный модуль в типовых на БСП, называется кажется УправлениеСвойствами и там куча всего интересного.
9 novichok79
 
31.07.18
16:58
УправлениеСвойствами:


// Возвращает значения дополнительных свойств объектов.
//
// Параметры:
//  ОбъектыСоСвойствами  - Массив      - объекты, для которых нужно получить значения дополнительных свойств.
//                       - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура,
//                                       ДокументСсылка.ЗаказПокупателя, ...
//  ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. По умолчанию Истина.
//  ПолучатьДопСведения  - Булево - в результат включать дополнительные сведения. По умолчанию Истина.
//  Свойства             - Массив - свойства:
//                          * ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - значения
//                            которых следует получить.
//                          * Строка - уникальное имя дополнительного свойства.
//                       - Неопределено - по умолчанию, получить значения всех свойств владельца.
//
// Возвращаемое значение:
//  ТаблицаЗначений - колонки:
//    * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца.
//    * Значение - Произвольный - значения любого типа из описания типов свойства объекта метаданных:
//                  "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип".
//    * ВладелецСвойств - ЛюбаяСсылка - ссылка на объект.
//
Функция ЗначенияСвойств(ОбъектыСоСвойствами,
                        ПолучатьДопРеквизиты = Истина,
                        ПолучатьДопСведения = Истина,
                        Свойства = Неопределено) Экспорт
    
    ПолучатьДопСведения = ПолучатьДопСведения И ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДополнительныеСведения);
    
    Если ТипЗнч(ОбъектыСоСвойствами) = Тип("Массив") Тогда
        ВладелецСвойств = ОбъектыСоСвойствами[0];
    Иначе
        ВладелецСвойств = ОбъектыСоСвойствами;
    КонецЕсли;
    
    Если Свойства = Неопределено Тогда
        Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
    КонецЕсли;
    
    ИмяОбъектаСоСвойствами = ОбщегоНазначения.ИмяТаблицыПоСсылке(ВладелецСвойств);
    
    ТекстЗапросаДопРеквизиты =
        "ВЫБРАТЬ [РАЗРЕШЕННЫЕ]
        |    ТаблицаСвойств.Свойство КАК Свойство,
        |    ТаблицаСвойств.Значение КАК Значение,
        |    ТаблицаСвойств.ТекстоваяСтрока,
        |    ТаблицаСвойств.Ссылка КАК ВладелецСвойств
        |ИЗ
        |    [ИмяОбъектаСоСвойствами].ДополнительныеРеквизиты КАК ТаблицаСвойств
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
        |        ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
        |ГДЕ
        |    ТаблицаСвойств.Ссылка В (&ОбъектыСоСвойствами)
        |    И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
        |        ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
    
    ТекстЗапросаДопСведения =
        "ВЫБРАТЬ [РАЗРЕШЕННЫЕ]
        |    ТаблицаСвойств.Свойство КАК Свойство,
        |    ТаблицаСвойств.Значение КАК Значение,
        |    """" КАК ТекстоваяСтрока,
        |    ТаблицаСвойств.Объект КАК ВладелецСвойств
        |ИЗ
        |    РегистрСведений.ДополнительныеСведения КАК ТаблицаСвойств
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
        |        ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
        |ГДЕ
        |    ТаблицаСвойств.Объект В (&ОбъектыСоСвойствами)
        |    И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
        |        ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
    
    Запрос = Новый Запрос;
    
    Если ПолучатьДопРеквизиты И ПолучатьДопСведения Тогда
        ТекстЗапроса = СтрЗаменить(ТекстЗапросаДопРеквизиты, "[РАЗРЕШЕННЫЕ]", "РАЗРЕШЕННЫЕ") + "
            |
            | ОБЪЕДИНИТЬ ВСЕ
            |" + СтрЗаменить(ТекстЗапросаДопСведения, "[РАЗРЕШЕННЫЕ]", "");
        
    ИначеЕсли ПолучатьДопРеквизиты Тогда
        ТекстЗапроса = СтрЗаменить(ТекстЗапросаДопРеквизиты, "[РАЗРЕШЕННЫЕ]", "РАЗРЕШЕННЫЕ");
        
    ИначеЕсли ПолучатьДопСведения Тогда
        ТекстЗапроса = СтрЗаменить(ТекстЗапросаДопСведения, "[РАЗРЕШЕННЫЕ]", "РАЗРЕШЕННЫЕ");
    КонецЕсли;
    
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяОбъектаСоСвойствами]", ИмяОбъектаСоСвойствами);
    
    Запрос.Параметры.Вставить("ОбъектыСоСвойствами", ОбъектыСоСвойствами);
    Запрос.Параметры.Вставить("Свойства", Свойства);
    Запрос.Текст = ТекстЗапроса;
    
    Результат = Запрос.Выполнить().Выгрузить();
    РезультатСТекстовымиСтроками = Неопределено;
    ИндексСтроки = 0;
    Для каждого ЗначениеСвойства Из Результат Цикл
        ТекстоваяСтрока = ЗначениеСвойства.ТекстоваяСтрока;
        Если Не ПустаяСтрока(ТекстоваяСтрока) Тогда
            Если РезультатСТекстовымиСтроками = Неопределено Тогда
                РезультатСТекстовымиСтроками = Результат.Скопировать(,"Свойство, ВладелецСвойств");
                РезультатСТекстовымиСтроками.Колонки.Добавить("Значение");
                РезультатСТекстовымиСтроками.ЗагрузитьКолонку(Результат.ВыгрузитьКолонку("Значение"), "Значение");
            КонецЕсли;
            РезультатСТекстовымиСтроками[ИндексСтроки].Значение = ТекстоваяСтрока;
        КонецЕсли;
        ИндексСтроки = ИндексСтроки + 1;
    КонецЦикла;
    
    Возврат ?(РезультатСТекстовымиСтроками <> Неопределено, РезультатСТекстовымиСтроками, Результат);
КонецФункции
10 falselight
 
31.07.18
17:03
(8) (9) Ясно!!!!
Огромадное спасибо!!!!!!
Разбираюсь.
11 falselight
 
31.07.18
17:08
(9) То есть получается лучше получать через существующие
функции? Не делая своих выборок?
12 novichok79
 
31.07.18
20:09
(11) делайте как хотите.
13 falselight
 
01.08.18
06:28
(12) Не я же решаю.
14 falselight
 
01.08.18
06:29
(13) А извините, понял. Не туда отправил сообщение (12).