7.7 Табличная части документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем NemeL, 15 фев 2012.

  1. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Подскажите можно ли реализовать следующую задачу: конфигурация самописная, в ней есть документ заказ, и документ расходный лист на модель, в заказе в табличной части вводятся только название моделей,цена и количество, а в расчетном листе в табличной части перечень сырья из которого делается эта модель. Можно ли сделать документ состоящий из 2 табличных частей чтоб в первой было наименование,количество(из заказа)и колонка для выбора Расходного листа, а во второй табличной части чтоб отображалось табличная часть Расходного листа который был выбран в перовой таблице, т.е при клике на строку выводилась табличная части именно документа каторый там выбран. Каким способом лучше сделать это?через служебный документ или как нибудь выгрузить можно?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Здравствуйте, а Вам точно ТРЕТИЙ документ нужен (или обработка) - не совсем понятно; либо Вам нужно два существующих документа обЪединить в ОДИН новый...
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Третий документ вам точно не нужен...
    Все зависит от того как реализован расходный лист + сама идеология.
    Может ли один и тот же РЛ быть в нескольких заказах?

    Проще всего сделать так:
    1) В заказе еще один реквизит типа документ со ссылкой на РЛ. При выборе РЛ врубаем фильтр с учетом ТМЦ и особенностей (проверка основания если РЛ уникален)
    2) На форму документа заказа добавляем ТЗ в которую выводим ТЧ документа РЛ по ссылке.
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    сдается мне, что одной ссылкой не отделаться. Насколько я поняла в документе заказ в таб части несколько моделей может быть, а на каждую модель свой документ Расходный лист. Так? если да, то в табчасти первого документа у вас уже должны быть ссылки на второй документ. по событию ПриАктивизацииСтроки первой табличной части выводите во вторую табчасть содержимое Расходного листа. Как то так...
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Именно это и имел ввиду
  6. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    [CODE1C]
    выводим ТЧ документа РЛ по ссылке.
    [/CODE1C]
    Спасибо за совет, а вот это какая то команда есть или через ТЗ?
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    через функцию... Невидимый реквизит формы.
    Сама функция выглядит примерно так
    Код:
    //это в начале модуля формы
    Перем ТекСтрока;
    
    
    Функция ОтобразитьРЛ()
    Если ТекСтрока=НомерСтроки Тогда //защита от лишних отображений
    Возврат "";
    КонецЕсли;
    ТекСтрока=НомерСтроки;
    Если ПустоеЗначение(РЛ)=1 Тогда   //очищаем т.к. нет ссылки
    Таб_РЛ.УдалитьСтроки();
    Возврат "";
    КонецЕсли;
    РЛ.ВыгрузитьТабличнуюЧасть(Таб_РЛ);
    //наводим красивость на колонки тут
    КонецФункции
    
    Процедура ПриОткрытии()
    ТекСтрока=1;
    //тут ваш код
    КонецПроцедуры
    
    где РЛ - реквизит ТЧ документа заказа типа документ
    Таб_РЛ - ТЗ формы документа заказа
  8. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Спасибо, выгрузка получилась, а вот еще вопрос можно ли взять значение Количество выделеной строки первой таблицы и умножить на все строки колонки НеобходимоСырья во второй таблице?
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А кто вам запрещает?
    Код:
    Функция ОтобразитьРЛ()
    Если ТекСтрока=НомерСтроки Тогда //защита от лишних отображений
    Возврат "";
    КонецЕсли;
    ТекСтрока=НомерСтроки;
    Если ПустоеЗначение(РЛ)=1 Тогда   //очищаем т.к. нет ссылки
    Таб_РЛ.УдалитьСтроки();
    Возврат "";
    КонецЕсли;
    РЛ.ВыгрузитьТабличнуюЧасть(Таб_РЛ);
    //наводим красивость на колонки тут
    Таб_РЛ.ВыбратьСтроки();
    Пока  Таб_РЛ.ПолучитьСтроку()=1 Цикл
    //производим вычисления
    КонецЦикла;
    //если нужны итоговые суммы - выводим на форме через
    // Таб_РЛ.Итог("ИмяКолонки")
    КонецФункции
  10. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Пытаюсь вывести на печать данные второй таблицы, но не получается

    Код:
    Процедура Выводостатка()
    СпНаименования=СоздатьОбъект("СписокЗначений");
    ВыгрузитьТабличнуюЧасть(СпНаименования,"Наименование,Цвет" );
    ТабличнаяЧастьТЗ.ВыбратьСтроки();
    Пока  ТабличнаяЧастьТЗ.ПолучитьСтроку()>0 Цикл
    Сообщить(Наименование);
    КонецЦикла;
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса=
    "
    |Материал = Регистр.ОстаткиМатериалов.Материал;
    |Цвет = Регистр.ОстаткиМатериалов.ЦветТкани;
    |Количество = Регистр.ОстаткиМатериалов.Количество;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Материал  ;
    |Группировка Цвет без групп  ;  
    |Условие (Материал в СпНаименования);
    |Условие (Цвет в СпНаименования);  
    |";
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица1");
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка("Материал") = 1 Цикл
    Пока Запрос.Группировка("Цвет")=1 Цикл
    КонецЦикла;
    КонецЦикла;
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если Запрос.Получить(Наименование,Цвет)>0 Тогда
    Таб.ВывестиСекцию("Секция1");
    Иначе
    Таб.ВывестиСекцию("Секция2");
    КонецЕсли;
    КонецЦикла;
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
    КонецПроцедуры  
    в чем ошибка?
    ТабличнаяЧастьТЗ- индентификатор второй таблицы на форме
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Не нужно "гонять" пустой цикл
    Код:
    Пока Запрос.Группировка("Материал") = 1 Цикл
    Пока Запрос.Группировка("Цвет")=1 Цикл
    КонецЦикла;
    КонецЦикла;
    2) Вот ваша ошибка
    Код:
    ВыгрузитьТабличнуюЧасть(СпНаименования,"Наименование,Цвет" );
    Для выполнения условий в запросе разнесите по разным спискам значений
    Код:
    СпНаименования=СоздатьОбъект("СписокЗначений");
    ВыгрузитьТабличнуюЧасть(СпНаименования,"Наименование" );
    СпЦвет=СоздатьОбъект("СписокЗначений");
    ВыгрузитьТабличнуюЧасть(СпНаименования,"Цвет" );
    
    ну и в запросе конечно
    Код:
     |Условие (Материал в СпНаименования);
    |Условие (Цвет в СпЦвет);  
  12. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    не помогло, все равно данные берутся из первой ТЧ, а не из второй
  13. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    <P>ВыбратьСтроки();</P>
    <P>Пока ПолучитьСтроку = 1 Цикл</P>
    <P>ВашРеквизитССылкойНаВторойДок.ВыгрузитьТабличнуюЧасть(КудаНадо);</P>
    <P>ПечатьНашейСекцииИлиЧтоТоТамЕще()</P>
    <P>КонецЦикла</P>
    что есть первая тч, а что вторая?
    ВыгрузитьТабличнуюЧасть() - метод выгружает табличную часть текущего документа.
    если в ТЧ первого документа есть реквизит с ссылкой на второй документ, значить:
    ВыбратьСтроки();
    Пока ПолучитьСтроку = 1 Цикл
    ВашРеквизитССылкойНаВторойДок.ВыгрузитьТабличнуюЧасть(КудаНадо);
    ПечатьНашейСекцииИлиЧтоТоТамЕще()
    КонецЦикла
  14. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВыбратьСтроки();
    Пока ПолучитьСтроку = 1 Цикл
    ВашРеквизитССылкойНаВторойДок.ВыгрузитьТабличнуюЧасть(КудаНадо);
    ПечатьНашейСекцииИлиЧтоТоТамЕще()
    КонецЦикла
    проглючила вставка тега через кнопь.
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Опишите что вы хотите добиться
  16. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    мне нужно вывести на печать все строки второй таблицызначений, т.е расходного листа
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    зачем вам тогда запрос?
    Нужны еще и актуальные остатки?
    КСТАТИ - в запросе нет даты получения остатков.
    Поэтому запрос не выполняется. В качестве даты нудно передать ДОКУМЕНТ РЛ
  18. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    спасибо, тема закрыта
  19. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    а подскажите пожалуйста, можно сделать чтоб в еще одну тз-общюю выводились все строки Таб_РЛ? каким лучше методом сделать?
  20. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    через перебор циклом

    Один вопрос - одна тема.

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