1с как программно создать документ на основании другого
Перейти к содержимому

1с как программно создать документ на основании другого

  • автор:

Как програмно создать и заполнить документ на основании?

Задача: при проведении поступления товаров и услуг на основании программно вводить документ установка цен номенклатуры.
Делаю так:

НовыйДокУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокУстановкаЦен.Заполнить(ЭтотОбъект.Ссылка);
// Заполним реквизиты из стандартного набора по документу основанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(НовыйДокУстановкаЦен, ЭтотОбъект.Ссылка);
НовыйДокУстановкаЦен.Записать(РежимЗаписиДокумента.Проведение);

В итоге документ создаётся пустой. Направте на путь истинный, пожалуйста.

(5) Дело в том, что на днях писал обработку, где программно создавал один док на основании другого и он открывался уже с заполненной табличной частью. Вот пример:
НовыйДокПереоценка = Документы.ПереоценкаТоваровВРознице.СоздатьДокумент();
НовыйДокПереоценка.Заполнить(НовыйДок.Ссылка);
НовыйДокПереоценка.Комментарий = "Записан программно";
НовыйДокПереоценка.Записать(РежимЗаписиДокумента.Проведение);

В чем прикол с установкой цен?

Читаю и думаю: а какие именно цены устанавливать по поступления собирается ТС? Цены поставщика? 🙂 Так ведь поставщик их уже установил :)) Тут разумно только зарегистрировать эти цены на основании поступления. Но это уже другой документ и другая тема.

"Бойтесь исполнения своих желаний"(с)

(22) посмотрел ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ПараметрОснование); — не все так просто там, наверное надо или повторять фукционал или делать ее экспортной и вызывать

а если не хо, можно обойтись быдлокодом типа:
НовыйДокУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокУстановкаЦен.Заполнить(ПоступлениеТоваровУслуг);
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(НовыйДокУстановкаЦен, ПоступлениеТоваровУслуг);
НовыйДокУстановкаЦен.Дата = ТекущаяДата();
НоваяСтрока = НовыйДокУстановкаЦен.ТипыЦен.Добавить();
НоваяСтрока.ТипЦен = ПоступлениеТоваровУслуг.ТипЦен.ТипЦеныНоменклатуры;
Для КАЖДОГО СтрокаТовары ИЗ ПоступлениеТоваровУслуг.Товары Цикл
НоваяСтрокаТов = НовыйДокУстановкаЦен.Товары.Добавить();
НоваяСтрокаТов.Номенклатура = СтрокаТовары.Номенклатура;
НоваяСтрокаТов.ЕдиницаИзмерения = СтрокаТовары.ЕдиницаИзмерения;
НоваяСтрокаТов.Цена = СтрокаТовары.Цена;
НоваяСтрокаТов.ТипЦен = ПоступлениеТоваровУслуг.ТипЦен.ТипЦеныНоменклатуры;
НоваяСтрокаТов.Валюта = ПоступлениеТоваровУслуг.ТипЦен.ВалютаЦены;
КонецЦикла;
Попытка
НовыйДокУстановкаЦен.Записать();
Исключение КонецПопытки;

(25) Это всё что есть у меня:
Процедура ОбработкаЗаполнения(Основание)

Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда

// Заполним реквизиты из стандартного набора по документу основанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
КонецЕсли;

Продолжаем разговор. Док создаётся и заполняется.

Попытка
мДок = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент().ПолучитьФорму("ФормаДокумента");
мДок.ПараметрОснование = Ссылка;
мДок.Открыть();
мДок.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
мДок.Закрыть();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Проблема в следующем, документ основание проводится текущей датой, а не датой документа поступления. Как это побороть?

Создание документа на основе другого и перенос всех данных

Создание документа и элемента справочника на основе данных из таб. части
Ситуация. Есть внешняя обработка, на ней есть таб.часть "Таблица" с реквезитами "Т_Код".

1с УТ 10.3. Создание документа на основании при проведении другого документа. Реализация механизма перепроведения.
Доброго времени суток, задача стояла при проведении одного документа1, создавался другой документ2.

Перенос табличной части одного документа в ТЧ другого?
Всем привет ! Есть следующие объекты: — Cправочник "Товары". — Документ ЗаказПокупателя c ТЧ.

Создание doc документа на основе формы C#
Есть форма, на ней расставлено несколько textbox. Необходимо на их основе создать Word документ.

Сообщение от Xuwy

Создание многостраничного документа Word на основе шаблона
Доброго времени суток Уважаемые форумчане. С word работаю достаточно давно и проблем никогда не.

Создание текстового документа на основе MDI — приложения
Добрый вечер разработал многооконное приложение. нужно теперь создать в нём текстовый документ.

Создание документа на основании другого
Здравствуйте. У меня есть документ "Заказы покупателя" и документ "Реализация товаров и услуг".

Перенос всех рисунков из одного вордовского документа в другой
Есть документ с текстом и рисунками Возможно ли написать макрос, который переносит все рисунки.

Создание документа наподобие другого в MS Word 2010
вопрос заключается в следующем: у меня есть два разных документа, оформлены совсем по разному, но.

Создаем документа на основе данных другой ИБ
Возник вопрос: Можно ли через OLE получить бух. итоги? Если да, то как? Версия 7.7. Я опишу свою.

Конструктор ввода на основании

Конструктор ввода на основании помогает создать процедуру на встроенном языке, которая будет вызываться при создании одного объекта прикладного решения на основании данных, содержащихся в другом объекте. Такая функциональность может потребоваться, например, если в прикладном решении на основании справочника Контрагенты должен создаваться документ ПриходТовара , содержащий те же реквизиты, что и исходный элемент справочника.

Конструктор ввода на основании можно вызвать, например, из окна редактирования справочника:

Конструктор позволяет вручную или автоматически заполнить выражения, которые будут записаны в поля результирующего объекта прикладного решения:

Результатом работы конструктора является готовая процедура на встроенном языке с именем ОбработкаЗаполнения() . Эта процедура располагается в модуле результирующего объекта конфигурации и будет вызвана системой при вводе этого объекта на основании другого объекта.

Для каждого типа объекта-основания формируется своя ветка условия Если , в которой происходит заполнение реквизитов нового документа.

Как выполнить ввод на основании программно?

В большинстве случаев, когда объект вводится на основании, нужно открыть пользователю форму нового объекта, который введен на основании какого-то объекта. В этом случае достаточно просто передать параметр Основание в процедуру открытия формы:

При этом отработает процедура ОбработкаЗаполнения() в модуле объекта и те алгоритмы заполнения, которые в ней описаны.

Еще один способ — создать новый объект программно, вызвать у него метод Заполнить() и передать в этот метод значение, на основании которого должен быть создан новый объект. В этом случае тоже будет выполнен обработчик события ОбработкаЗаполнения() . В заключении останется только получить форму объекта, установить свойство расширения формы ПараметрОснование и открыть ее:

Если же объект, который вводится на основании, нужно сразу записать в базу данных, не показывая его форму пользователю:

В результате этих действий будет выполнен обработчик события ОбработкаЗаполнения() , расположенный в модуле нового объекта.

Документы в 1С 8. Примеры работы средствами встроенного языка

В статье приводятся практические примеры работы с документами в языке 1С. Рассматриваются приемы работы с объектной моделью – создание, редактирование, удаление документов, а также типовые запросы для выборки документов по различным условиям. Для удобства пользуйтесь оглавлением.

Содержание

Немного о документах

Документы – краеугольный камень в построении большинства учетных систем средствами платформы 1С Предприятие. Они предназначены преимущественно для отражения совершенных хозяйственных операций, а также для последующего просмотра и редактирования.

Виды документов, которые создаются в конфигураторе на этапе проектирования прикладного решения, в основном соответствуют своим бумажным аналогам – приходным накладным, документам продажи или актам об оказании услуг, и др. Для каждой отрасли и вида учета набор таких документов и их реквизитный состав может отличаться.

Помимо записи о произошедшей хозяйственной операции, документы используются для фиксации изменений в учетных регистрах (т.н. проведение), а также позволяют сформировать печатные формы. Вообще, спектр применения документов в платформе 1С очень обширный, и позволяет реализовывать самые различные механизмы – биллинг, учет коммунальных платежей, сложные расчеты, учет ценных бумаг и активов, и многое другое.

Документы описываются в системе 1С двумя стандартными реквизитами – Номер и Дата. Использование номера не является обязательным – можно указать длину номера 0, и в этом случае платформа отключит механизм нумерации документов. В этом случае разработчик может сам предусмотреть реквизиты для формирования представления документа и для проверки уникальности. Но на практике чаще всего номер не отключается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *