8.х Организация плана закупок

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alexisinfire, 19 май 2008.

  1. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Здрасте.
    Есть справочник "Состав" и документ "План производства". В Справочнике содержится информация о том, какое изделие из какой номенклатуры состоит (справочник иерархический, ступеней иерархии неограничено - изделие может состоять как из сборочных едениц, которые сотоят из номенклатуры, так и из самой номенклатуры) и ее количество. В документе есть в табличная часть, в ней отображаются изделия, которые необходимо собрать, и их количество.

    Необходимо составить отчет - план закупок для производства. Который отобразит всю номенклатуру, которая испльзуется в "Плане производства", и просуммирует количество одинаковой номенклатуры.

    Кто знает, подскажите как, пожалуйста... :unsure: B)
  2. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    Есть такая вещь таблица значений в нее все скидываешь так как описал, а потом пользуйся командой Свернуть и будет тебе счастье :unsure:
  3. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Если можно, подробнее...
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Он имеет ввиду последовательный перебор табличных частей содержащих необходимые материалы, сбор их всех в одну большую ТаблицуЗначений, а затем использования метода "Свернуть()".

    Результирующая таблица будет содержать список всех необходимых материалов, без повторений, с суммарным количеством.
  5. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |	ПланПроизводстваСостав.Изделие,
    |	ПланПроизводстваСостав.Количество КАК КоличествоИзделий,
    |	Состав.Родитель,
    |	Состав.Номенклатура,
    |	Состав.Количество КАК Количество
    |ИЗ
    |	Справочник.Состав КАК Состав
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланПроизводства.Состав КАК ПланПроизводстваСостав
    |		ПО Состав.Родитель = ПланПроизводстваСостав.Изделие
    |ГДЕ
    |	Состав.ЭтоГруппа = ЛОЖЬ";
    Результат = Запрос.Выполнить().Выбрать();
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Номенклатура");
    ТаблицаЗначений.Колонки.Добавить("Количество");
    
    
    Пока Результат.Следующий() Цикл
    Стр = ТаблицаЗначений.Добавить();
    Стр.Номенклатура = Результат.Номенклатура;
    Стр.Количество = Результат.Количество;
    КонецЦикла;
    ТаблицаЗначений.Свернуть("Номенклатура", "Количество");
    
    Вот такой вот код получился.
    Как сделать так, чтобы количество нменклатуры каждого изделия (берется из спр "Состав"), умножалось на количество этого изделия (из таб части документа "ПланПроизводства")? И Записывалось в ТаблицуЗначений в колонку "Количество"?
  6. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПланПроизводстваСостав.Изделие,
    |    ПланПроизводстваСостав.Количество КАК КоличествоИзделий,
    |    Состав.Родитель,
    |    Состав.Номенклатура,
    |    Состав.Количество КАК СоставКоличество,
    |    Состав.Количество * ПланПроизводстваСостав.Количество КАК Количество
    |ИЗ
    |    Справочник.Состав КАК Состав
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланПроизводства.Состав КАК ПланПроизводстваСостав
    |        ПО Состав.Родитель = ПланПроизводстваСостав.Изделие
    |ГДЕ
    |    Состав.ЭтоГруппа = ЛОЖЬ";
    
    ТаблицаЗначений = Запрос.Выполнить().Выгрузить();
    
    ТаблицаЗначений.Свернуть("Номенклатура", "Количество");
    
    
  7. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Колонку "Количество" Таблицы Значений заполняет нулями....
    ????
    Справочник и Таб часть дока заполнены...
  8. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    а что в колонках:
    КоличествоИзделий и СоставКоличество ?
  9. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    КоличествоИзделий тож 0, а СоставКоличество - значения из спр.
  10. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Проверяй чего у тебя там по соединению с доком подтягивается и чего в самом документе записано.
  11. TopicStarter Overlay
    alexisinfire
    Offline

    alexisinfire

    Регистрация:
    17 мар 2008
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Код:
    ПО Состав.Родитель = ПланПроизводстваСостав.Изделие 
    
    Исправил на
    Код:
    ПО Состав.Родитель.Номенклатура = ПланПроизводстваСостав.Изделие
    
    Таблица теперь заполняется не нулями...если изделие состоит только из номенклатуры.
    НО:
    1.Запрос выбирает все элементы, которые есть в справочнике, а не только те, родители которых указаны в таб части дока( в таблцу значений количество не указаных заполняет нулями);
    2.Если изделие сотоит из сборочных едениц(состоящих из номенклатуры) и из номенклатуры, тогда Количество из дока не умножается на Количество номенклатуры(в сборочных еденицах) из справочника.
    Как ето исправить?

Поделиться этой страницей