Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 03:37

Обращение к таблице из под модуля документа

Автор Feramount, 26 окт 2012, 11:34

0 Пользователей и 1 гость просматривают эту тему.

Feramount

Пытаюсь связать модуль документа и таблицу которая храниться в этом документе как шаблон накладной посредством вот этого кода:
Процедура ОбработкаПроведения()
ДокументПродажаТоваровТаблицаНакладная = СоздатьОбъект("Таблица");
ДокументПродажаТоваров = СоздатьОбъект("Документ.ПродажаТоваров");
ДокументПродажаТоваровТаблицаНакладная.ИсходнаяТаблица("Накладная");
НомерНакладной = ДокументПродажаТоваров.Код;
ДатаНакладной = ДокументПродажаТоваров.ДатаДок;
ДокументПродажаТоваровТаблицаНакладная.ВывестиСекцию("Шапка");
ДокументПродажаТоваровТаблицаНакладная.Показать();
КонецПроцедуры

Ругается что не может найти исходную таблицу "Накладную". Как правильно обращаться в документе к таблице?
1С v 7.7.

Mitay_D

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


Вот два варианта решения. первый -  выгрузить в таблицу значений и потом в таблице перебирать или 2-й способ. напрямую обратится к табличной части документа

Feramount

Цитата: Mitay_D от 26 окт 2012, 14:12Вот два варианта решения. первый -  выгрузить в таблицу значений и потом в таблице перебирать или 2-й способ. напрямую обратится к табличной части документа
Нет, это не табличная часть документа. Это таблица которая в виде Excel идет.

Herby

Цитата: Feramount от 26 окт 2012, 11:34ДокументПродажаТоваровТаблицаНакладная.ИсходнаяТаблица("Накладная");

Название таблицы должно совпадать с вашим названием в кавычках  в методе ИсходнаяТаблица.

Скорее всего, документ не содержит таблицу с названием "Накладная"
Добавлено: 26 окт 2012, 17:16


А вообще глупое решение. Для чего в обработке проведения выводить печатную форму?
Процедура ОбработкаПроведения() служит для определенных целей, и не зря она размещается в отдельном модуле.
Старайтесь не добавлять в эту процедуру ничего лишнего.  Эта процедура блокирует информационную базу, и чем дольше она выполняется,
тем больше висит блокировка, т.е. пока проводится этот документ, другие пользователи не могут сохранить/провести изменения в базе. Поэтому вывод печатных форм, а также какие-либо промежуточные действия (если это возможно) следует выполнять до проведения или после...


Feramount

Цитата: Herby от 26 окт 2012, 17:06
Цитата: Feramount от 26 окт 2012, 11:34ДокументПродажаТоваровТаблицаНакладная.ИсходнаяТаблица("Накладная");

Название таблицы должно совпадать с вашим названием в кавычках  в методе ИсходнаяТаблица.

Скорее всего, документ не содержит таблицу с названием "Накладная"
Добавлено: 26 окт 2012, 17:16


А вообще глупое решение. Для чего в обработке проведения выводить печатную форму?
Процедура ОбработкаПроведения() служит для определенных целей, и не зря она размещается в отдельном модуле.
Старайтесь не добавлять в эту процедуру ничего лишнего.  Эта процедура блокирует информационную базу, и чем дольше она выполняется,
тем больше висит блокировка, т.е. пока проводится этот документ, другие пользователи не могут сохранить/провести изменения в базе. Поэтому вывод печатных форм, а также какие-либо промежуточные действия (если это возможно) следует выполнять до проведения или после...


Ну я тоже подумал что это глупо, и решил проблему тем что вынес в модуль формы отдельную процедуру для генерации накладной

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск