Помогите пожалуйста новичку.

Тема в разделе "1C и всё что с ней связано", создана пользователем Guest11, 8 окт 2009.

Статус темы:
Закрыта.
  1. Guest11

    Guest11 Гость

    Есть документ "Отчёт о расходе материалов" и в нём есть таблица Расшифровка, в которой располагаются следующие реквизиты: Изделие, Материал, Объём_работ, Норма_на_1_изд.,Всего_по_норме.
    Нужно сложить количество материала израсходованного по норме (Всего_по_норме), то есть, если в колонке Материалы попадаются материалы с одинаковым названием, то их расход по норме суммируется. У меня что-то вообще нет никаких мыслей как это можно сделать... Помогите пожалуйста.
     
  2. Hryv

    Hryv Гость

    Если речь о 7.7, то
    Свернуть(<?>,);
    Синтаксис:
    Свернуть(<ГруппКолонки>,<СуммКолонки>)
    Назначение:
    Позволяет свернуть таблицу значений по соответствующим значениям колонок, т.е. заменяет на одну строку все дублирующие (по значениям группировочных колонок) строки, суммируя значения по суммируемым колонкам.
    Параметры:
    <ГруппКолонки> - группировочные колонки (номера или идентификаторы колонок через запятую), по которым группировать данные.
    <СуммКолонки> - суммируемые колонки (номера или идентификаторы колонок через запятую), по которым суммировать данные.
     
  3. Guest11

    Guest11 Гость

    Нет, мне нужно на v8.0
     
  4. Hryv

    Hryv Гость

    думаю, что там есть такой же или аналогичный метод
     
  5. Guest11

    Guest11 Гость

    Для каждого рас из Расшифровка цикл
    плс=Всего.Добавить();
    рез=Расшифровка.Свернуть("Материалы","Всего_Н,Отклонение");
    плс.Материал=рез.Материалы;
    плс.Рас_по_Норм=рез.Всего_Н;
    плс.Отклонение=Рез.Отклонение;
    КонецЦикла;
    Попробовала так, просто результат должен отображаться в другой таблице. На что мне выдаётся: Обращение к процедуре объекта как к функции (Свернуть). Как же тогда это реализовать?

    Всё, решила проблему, осенило! :lol:
    Только, а вот если нам нужно найти одинаковые элементы таблиц в двух разных документах, то это как сделать?
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Что вы называете таблицой в документе?))
     
  7. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    найти-то их не проблема в принипе, но что вы потом собираетесь делать с найденными?
     
  8. Guest11

    Guest11 Гость

    Что такое таблица в документе? о_О Табличная часть документа, тут по-моему нетрудно догадаться что это.
    Потом собираюсь сравнить их с другим документом и, если в одном из них какого-то элемента нет, то вывести втабличной части третьего документа :( Вот так всё запутанно.
     
  9. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Нельзя так и написать? Мне вот кажется, что таблица документа это скорее таблица значений, в которую выгрузили таб. часть.
     
  10. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    насколько я понял тебе скорее нужно обходить одну табличку, искать каждую стоку в другой таблице и редультаты выгружать в третьюю. т.е.что то типа:
    Для каждого СТР из ТаблицаСоЗначениями цикл
    Если ВтораяТаблицаСоЗначениями.НайтиЗначение();//погляди синтаксис только
    Пока ВтораяТаблицаСоЗначениями.НайтиЗначение();
    //запись значений в третью таблицу
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
     
  11. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Эххх - может знатоки подскажут - есть ли в восьмерке что-то вроде UNION JOIN ? Тогда один масенький запрос с двумя параметрами -и получи что надо.
     
  12. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    блин. конечно есть. что-то я проморгал что разговор о восьмерке.. был занят. Конечно можно сделать все запросом. и на выходе получать уже только нужные сроки
     
  13. Guest11

    Guest11 Гость

    Дело в том, что поиск идёт по разным документам. Я пробовала создать запрос, но 1с8 ругалось и ничего из этого не получалось :(
    Попробую сделать как KiR выше описал.
    А вообще дело вот в чём, если подробно разбираться:
    есть, допустим, три документа: Остаток материалов (подразделение,материал,остаток),Требование-накладная (материал, количество) - он же документ, по которуму считается приход материалов, Инвентаризационная опись (материал, количество) - фиксирует количество материала в цехе на конец периода.
    Вот надо, чтобы в 4-ойтаблице выводились все материалы, что есть в этих документах и, если материалы совпадают, то остаток на начало, приход и остаток на конец выводился. Если же какой-то материал не встречается в одном из документов - он добавлялся и выводилось тоже самое, только со значением 0 в том или ином количественном параметре (остаток на начало, приход, остаток на конец), смотря в какой таблице нет его.
    Я просила пример для двух таблиц, чтобы понять механизм как это делается, для трёх, думаю потом как-нибудь сообразила бы. Но если кто может конкретно для моего случая сказать как сделать, то я буду примного благодарна.
     
  14. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Код (Text):
    select
    d1.tovar
    where
    d1.tovar = d2.tovar
    d1 - табличная часть первого документа
    d2 - табличная часть второго документа
    tovar - реквизит, который будет одинаковым в обоих документах.
     
  15. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Блин - фанат join-ов. Можно и без них - но они таки быстрее

    Выбрать Различные Накладная.Номенклатура
    из документ.Расходнаянакладная Как Накладная
    Где Номенклатура не в (Выбрать Различные Накладная1.Номенклатура
    из документ.Расходнаянакладная Как Накладная1 где Накладная1.ссылка = &Ссылка1) и Накладная.Ссылка = &Ссылка

    Невнимательно прочитал пост

    тебе тогда скорее надо выбрать номенклатуру из трех документов ( или партии, если у тебя партионный учет), свернуть это дело по нужному полю и сделать через вирт. таб. ОстаткиИОбороты запрос к регистрам, в которых хранится остаток. Добавление тут происходит при свертке таблицы, а вот
    надо через условия писать..
     
  16. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а мне кажется автору нада просто делать выборку таб частей трех указанных доков, выгружать это в ТЗ и потом просто сворачивать т.з. а потом если нужны какие-то отстаки и обороты - делать выборку отдельно по ним...
     
  17. DjAlex

    DjAlex Гость

    Если я правильно понял суть вопроса, то это примерно будет выглядить так:

    ВЫБРАТЬ
    ВложенныйЗапрос.Материал,
    СУММА(ВложенныйЗапрос.Приход) КАК Приход,
    СУММА(ВложенныйЗапрос.Остаток) КАК Остаток,
    СУММА(ВложенныйЗапрос.ОстатокНаКонец) КАК ОстатокНаКонец,
    ИЗ
    (ВЫБРАТЬ
    ОстатокМатериала.Материал КАК Материал,
    0 КАК Приход,
    ОстатокМатериала.Количество КАК Остаток,
    0 КАК ОстатокНаКонец
    ИЗ
    Документ.ОстатокМатериала.Товары КАК ОстатокМатериала

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

    ВЫБРАТЬ
    ТребованиеНакладная.Материал,
    ТребованиеНакладная.Количество,
    0,
    0
    ИЗ
    Документ.ТребованиеНакладная.Товары КАК ТребованиеНакладная

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

    ВЫБРАТЬ
    ИнвентаризационнаяОпись.Материал,
    0,
    0,
    ИнвентаризационнаяОпись.Количество
    ИЗ
    Документ.ИнвентаризационнаяОпись.Товары КАК ИнвентаризационнаяОпись) КАК ВложенныйЗапрос

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Материал
     
  18. Guest11

    Guest11 Гость

    спасибо всем большое за советы. Сделала всё через запрос. It's work!)
     
Загрузка...
Похожие Темы - Помогите пожалуйста новичку
  1. limbra
    Ответов:
    3
    Просмотров:
    47
  2. uxbmw3w
    Ответов:
    0
    Просмотров:
    69
  3. GREED
    Ответов:
    1
    Просмотров:
    538
  4. Рая
    Ответов:
    3
    Просмотров:
    790
  5. sonia2000
    Ответов:
    0
    Просмотров:
    960
Статус темы:
Закрыта.

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