Перейти к содержимому


- - - - -

(РЕШЕНО) Табличная части документа


Сообщений в теме: 19

#1 NemeL

    Частый гость


  • 75 сообщений

Отправлено 15 февраля 2012 - 22:24

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

#2 rshakiro

    Активист


  • 442 сообщений

Отправлено 15 февраля 2012 - 22:42

Здравствуйте, а Вам точно ТРЕТИЙ документ нужен (или обработка) - не совсем понятно; либо Вам нужно два существующих документа обЪединить в ОДИН новый...
SUCCESS DOESN'T COME TO YOU …YOU GO TO IT!

#3 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 16 февраля 2012 - 05:30

Третий документ вам точно не нужен...
Все зависит от того как реализован расходный лист + сама идеология.
Может ли один и тот же РЛ быть в нескольких заказах?

Проще всего сделать так:
1) В заказе еще один реквизит типа документ со ссылкой на РЛ. При выборе РЛ врубаем фильтр с учетом ТМЦ и особенностей (проверка основания если РЛ уникален)
2) На форму документа заказа добавляем ТЗ в которую выводим ТЧ документа РЛ по ссылке.
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#4 Tiger86

    Ветеран


  • 1 076 сообщений

Отправлено 16 февраля 2012 - 07:16

сдается мне, что одной ссылкой не отделаться. Насколько я поняла в документе заказ в таб части несколько моделей может быть, а на каждую модель свой документ Расходный лист. Так? если да, то в табчасти первого документа у вас уже должны быть ссылки на второй документ. по событию ПриАктивизацииСтроки первой табличной части выводите во вторую табчасть содержимое Расходного листа. Как то так...
хотите сказать спасибо? жмите Изображение

#5 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 16 февраля 2012 - 07:35

Просмотр сообщенияTiger86 (16 февраля 2012 - 07:16) писал:

а на каждую модель свой документ Расходный лист. Так?
Именно это и имел ввиду
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#6 NemeL

    Частый гость


  • 75 сообщений

Отправлено 16 февраля 2012 - 07:45


выводим ТЧ документа РЛ по ссылке.

Спасибо за совет, а вот это какая то команда есть или через ТЗ?

Сообщение отредактировал WaRDeR: 16 февраля 2012 - 08:58


#7 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 16 февраля 2012 - 07:55

через функцию... Невидимый реквизит формы.
Сама функция выглядит примерно так

//это в начале модуля формы
Перем ТекСтрока;


Функция ОтобразитьРЛ()
  Если ТекСтрока=НомерСтроки Тогда //защита от лишних отображений
   Возврат "";
  КонецЕсли;
  ТекСтрока=НомерСтроки;
  Если ПустоеЗначение(РЛ)=1 Тогда   //очищаем т.к. нет ссылки
   Таб_РЛ.УдалитьСтроки();
   Возврат "";
  КонецЕсли;
  РЛ.ВыгрузитьТабличнуюЧасть(Таб_РЛ);
  //наводим красивость на колонки тут
КонецФункции

Процедура ПриОткрытии()
 ТекСтрока=1;
 //тут ваш код
КонецПроцедуры


где РЛ - реквизит ТЧ документа заказа типа документ
Таб_РЛ - ТЗ формы документа заказа
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#8 NemeL

    Частый гость


  • 75 сообщений

Отправлено 17 февраля 2012 - 09:54

Спасибо, выгрузка получилась, а вот еще вопрос можно ли взять значение Количество выделеной строки первой таблицы и умножить на все строки колонки НеобходимоСырья во второй таблице?

#9 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 18 февраля 2012 - 03:19

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

"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#10 NemeL

    Частый гость


  • 75 сообщений

Отправлено 19 февраля 2012 - 21:23

Пытаюсь вывести на печать данные второй таблицы, но не получается

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

Сообщение отредактировал NemeL: 19 февраля 2012 - 21:28


#11 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 20 февраля 2012 - 03:45

1) Не нужно "гонять" пустой цикл
Пока Запрос.Группировка("Материал") = 1 Цикл
  Пока Запрос.Группировка("Цвет")=1 Цикл
   КонецЦикла;
КонецЦикла;
2) Вот ваша ошибка
ВыгрузитьТабличнуюЧасть(СпНаименования,"Наименование,Цвет" );
Для выполнения условий в запросе разнесите по разным спискам значений
СпНаименования=СоздатьОбъект("СписокЗначений");
ВыгрузитьТабличнуюЧасть(СпНаименования,"Наименование" );
СпЦвет=СоздатьОбъект("СписокЗначений");
ВыгрузитьТабличнуюЧасть(СпНаименования,"Цвет" );

ну и в запросе конечно
 |Условие (Материал в СпНаименования);
|Условие (Цвет в СпЦвет);  

"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#12 NemeL

    Частый гость


  • 75 сообщений

Отправлено 20 февраля 2012 - 07:38

не помогло, все равно данные берутся из первой ТЧ, а не из второй

#13 фобец

    (-_-)y-.o0O


  • 660 сообщений

Отправлено 20 февраля 2012 - 08:02


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

#14 фобец

    (-_-)y-.o0O


  • 660 сообщений

Отправлено 20 февраля 2012 - 08:11


ВыбратьСтроки();
Пока ПолучитьСтроку = 1 Цикл
ВашРеквизитССылкойНаВторойДок.ВыгрузитьТабличнуюЧасть(КудаНадо);
ПечатьНашейСекцииИлиЧтоТоТамЕще()
КонецЦикла

проглючила вставка тега через кнопь.
Счастье есть...

#15 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 21 февраля 2012 - 05:08

Опишите что вы хотите добиться
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#16 NemeL

    Частый гость


  • 75 сообщений

Отправлено 21 февраля 2012 - 07:41

Просмотр сообщенияБухгалтерский угодник (21 февраля 2012 - 05:08) писал:

Опишите что вы хотите добиться
мне нужно вывести на печать все строки второй таблицызначений, т.е расходного листа

#17 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 21 февраля 2012 - 10:59

зачем вам тогда запрос?
Нужны еще и актуальные остатки?
КСТАТИ - в запросе нет даты получения остатков.
Поэтому запрос не выполняется. В качестве даты нудно передать ДОКУМЕНТ РЛ
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.

#18 NemeL

    Частый гость


  • 75 сообщений

Отправлено 27 февраля 2012 - 11:43

спасибо, тема закрыта

#19 NemeL

    Частый гость


  • 75 сообщений

Отправлено 12 марта 2012 - 21:39

а подскажите пожалуйста, можно сделать чтоб в еще одну тз-общюю выводились все строки Таб_РЛ? каким лучше методом сделать?

Сообщение отредактировал NemeL: 12 марта 2012 - 21:40


#20 Бухгалтерский угодник

    Ветеран


  • 13 296 сообщений

Отправлено 13 марта 2012 - 00:59

через перебор циклом

Один вопрос - одна тема.
"Любая проблема имеет Фамилию, Имя, Отчество....." (И. Сталин)
Жмакнувшим Изображение буду благодарен.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных