Ввод документа на основании - Программно Код 1C v 8.х НовДок = Документы. ПеречислениеНДФЛвБюджет. СоздатьДокумент( ) ;
НовДок. Заполнить( ЭлементыФормы. ДокументСписок. ТекущаяСтрока) ;
НовДок. ПолучитьФорму( ) . Открыть( ) ;
Процедура ОбработкаЗаполнения(Основание)
Если ТипЗнч( Основание) = Тип( "ДокументСсылка.ЗарплатаКВыплатеОрганизаций" ) Тогда
Комментарий = Основание. Комментарий;
КраткийСоставДокумента = Основание. КраткийСоставДокумента;
Организация = Основание. Организация;
Ответственный = Основание. Ответственный;
ДатаПлатежа = Основание. ПериодРегистрации;
МесяцНалоговогоПериода = Основание. ПериодРегистрации;
Для Каждого ТекСтрокаЗарплата Из Основание. Зарплата Цикл
НоваяСтрока = СотрудникиОрганизации. Добавить( ) ;
НоваяСтрока. Сумма = ТекСтрокаЗарплата. Сумма;
НоваяСтрока. ФизЛицо = ТекСтрокаЗарплата. Физлицо;
КонецЦикла ;
КонецЕсли ;
КонецПроцедуры
Категория:
Документы Корректировка регистров накопления через документ Часто возникает ситуация, когда программно нужно внести какие либо корректировки в регистры накопления и чтобы потом эти корректировки можно было легко поменять!
В типовых конфигурациях присутсвует документ "Корректировка Записей Регистров Накопления", который предназначен для ручной корректировки записей регистров накопления и для ввода остатков.
С помощью ниже следующего кода можно программно создать и заполнить движениями этот документ:
Код 1C v 8.х
НовДок = Документы. КорректировкаЗаписейРегистровНакопления. ПолучитьФормуНовогоДокумента( ) ;
НовДок. Дата= ТекущаяДата( ) ;
НовДок. Комментарий= "Корректировка регистра ВзаиморасчетыСРаботникамиОрганизаций" ;
НоваяСтрока = НовДок. ТаблицаРегистровНакопления. Добавить( ) ;
НоваяСтрока. Имя = Метаданные. регистрынакопления. ВзаиморасчетыСРаботникамиОрганизаций. имя;
НоваяСтрока. Представление = Метаданные. регистрынакопления. ВзаиморасчетыСРаботникамиОрганизаций. синоним;
Для Каждого СтрДвиж из ТЗрез Цикл
НовДвиж = НовДок. Движения. ВзаиморасчетыСРаботникамиОрганизаций. ДобавитьПриход( ) ;
НовДвиж. ФизЛицо= СтрДвиж. FizL;
НовДвиж. Организация= Организация;
НовДвиж. ПериодВзаиморасчетов= ВыбДокНачисл. ПериодРегистрации;
НовДвиж. СуммаВзаиморасчетов = СтрДвиж. RUB;
КонецЦикла ;
НовДок. Открыть( ) ;
Категория:
Регистры накопления Создание нового документа Для 8.2:
Открыть форму нового документа и предоставить пользователю самому интерактивно записать данные объекта в базу данных:
проще всего использовать метод глобального контекста ОткрытьФорму(). Это можно сделать на клиенте.
Код 1C v 8.2 УП ОткрытьФорму( "Документ.ПриходнаяНакладная.ФормаОбъекта" ) ;
При этом создается новый документ и открывается для редактирования основная форма этого документа.
Если нужно какое-то предварительное заполнение документа начальными данными, то это можно сделать либо с помощью свойств реквизитов документа ЗначениеЗаполнения, ЗаполнятьИзДанныхЗаполнения либо в обработчике события документа ОбработкаЗаполнения.
Создать новый документ программно, программно заполнить его данными и программно записать. Затем, если нужно, показать его пользователю:
можно программно создать документ на сервере, заполнить данными, если это нужно в обработчике события ОбработкаЗаполнения, записать, и передать ссылку на новый документ в метод глобального контекста ОткрытьЗначение(), который откроет форму этого документа. Например:
Код 1C v 8.2 УП &НаКлиенте
Процедура ПриходнаяНакладная(Команда)
СсылкаНаДокумент = СоздатьНовыйДокумент( ) ;
ОткрытьЗначение( СсылкаНаДокумент) ;
КонецПроцедуры
&НаСервере
Функция СоздатьНовыйДокумент()
НовыйДокумент = Документы. ПриходнаяНакладная. СоздатьДокумент( ) ;
НовыйДокумент. Номер = "111" ;
НовыйДокумент. Дата = ТекущаяДата( ) ;
НовыйДокумент. Записать( ) ;
Возврат НовыйДокумент. Ссылка;
КонецФункции
Подробнее об использовании методов ОткрытьЗначение() и ОткрытьФорму() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции для интерактивной работы
Код 1C v 8.2 УП
&НаКлиенте
Процедура СоздатьНовыйДокумент(Команда)
Если СоздатьНовыйДокументНаСервере( ) = 0 Тогда
Сообщить( "Не удалось создать новый документ" ) ;
КонецЕсли ;
КонецПроцедуры
&НаСервере
Функция СоздатьНовыйДокументНаСервере()
Перем НоваяРасходнаяНакладная;
Перем СтрокаТЧ;
НоваяРасходнаяНакладная= ДокРасходнаяНакладная. СоздатьДокумент( ) ;
НоваяРасходнаяНакладная. Дата= ТекущаяДата( ) ;
НоваяРасходнаяНакладная. Фирма = Справочники. Фирмы. ОсновнаяФирма;
НоваяРасходнаяНакладная. Контрагент= Справочники. Контрагенты. НайтиПоКоду( "000000001" ) ;
НоваяРасходнаяНакладная. Склад= Справочники. Склады. ОсновнойСклад;
СтрокаТЧ= НоваяРасходнаяНакладная. ТЧТовары. Добавить( ) ;
СтрокаТЧ. Товар= Справочники. Номенклатура. НайтиПоКоду( "000000002" ) ;
СтрокаТЧ. Цена= СтрокаТЧ. Товар. РозничнаяЦена;
СтрокаТЧ. Количество= 2 ;
СтрокаТЧ. Сумма= СтрокаТЧ. Цена* СтрокаТЧ. Количество;
Попытка
НоваяРасходнаяНакладная. Записать( ) ;
Возврат 1 ;
Исключение
Возврат 0 ;
КонецПопытки ;
КонецФункции
Для 8.1:
Код 1C v 8.х
НовДок = Документы. ЗарплатаКВыплатеОрганизаций. ПолучитьФормуНовогоДокумента( ) ;
НовДок. Дата= ТекущаяДата( ) ;
НовДок. Организация= Организация;
НовДок. ПериодРегистрации= ПериодРегистрации;
НовДок. ответственный= глЗначениеПеременной( "глТекущийПользователь" ) ;
НовДок. Комментарий= "Выплата за " + МесяцСтрока;
НовДок. ЭлементыФормы. Комментарий. Доступность= Ложь ;
Для Каждого ТекущаяСтрока Из ТаблицыЗначений Цикл
НС= НовДок. зарплата. добавить( ) ;
нс. Авторасчет= истина ;
нс. Физлицо = ТекущаяСтрока. Физлицо;
нс. ВыплаченностьЗарплаты= Перечисления. ВыплаченностьЗарплаты. НеВыплачено;
нс. сумма= ТекущаяСтрока. Результат;
КонецЦикла ;
НовДок. Открыть( ) ;
НовДок = Документы. РасходнаяНакладная. СоздатьДокумент( ) ;
НовДок. Дата= ТекущаяДата( ) ;
НовыйДок. УстановитьНовыйНомер( ) ;
НовДок. Организация= Организация;
НовДок. ПериодРегистрации= ПериодРегистрации;
НовДок. ответственный= глЗначениеПеременной( "глТекущийПользователь" ) ;
НовДок. Комментарий= "Выплата за " + МесяцСтрока;
НовДок. ЭлементыФормы. Комментарий. Доступность= Ложь ;
Для Каждого ТекущаяСтрока Из ТаблицыЗначений Цикл
НС= НовДок. зарплата. добавить( ) ;
нс. Авторасчет= истина ;
нс. Физлицо = ТекущаяСтрока. Физлицо;
нс. ВыплаченностьЗарплаты= Перечисления. ВыплаченностьЗарплаты. НеВыплачено;
нс. сумма= ТекущаяСтрока. Результат;
КонецЦикла ;
НовДок. Записать( ) ;
НовыйДок = Документы. ПеремещениеТоваров. СоздатьДокумент( ) ;
НовыйДок. Дата = ПолеВводаДаты;
НовыйДок. УстановитьВремя( ) ;
НовыйДок. УстановитьНовыйНомер( ) ;
Для Н= 1 По N Цикл
НоваяСтрока = НовыйДок. Товары. Добавить( ) ;
НоваяСтрока. Номенклатура = СтрокаДанных. Номенклатура;
КонецЦикла ;
НовыйДок. Записать( ) ;
СписокДокументов. Добавить( НовыйДок. Ссылка) ;
Категория:
Документы