Справочные материалы по 1С

Документы в 1С 8.x

Как создать новый документ?

НовыйДокумент = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент(); 
НовыйДокумент.Дата = ТекущаяДата();          
Как найти документ?

ИскомыйДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, Дата(2005, 1, 1)); 
Если НЕ ИскомыйДокумент.Пустая() Тогда 
	// Выполнить действия в случае обнаружения такого документа. … 
КонецЕсли;          
Как открыть форму документа?

Форма = ИскомыйДокумент.ПолучитьФорму(); 
Форма.Открыть();          
Как изменить значение реквизита и записать документ?

ДокОбъект = СсылкаНаДокумент.ПолучитьОбъект(); 
ДокОбъект.Ответственный = глТекущийПользователь; 
ДокОбъект.Записать(); 

// Запись с проведением документа
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); 

// Запись с отменой проведения
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);          
Как добавить строку в табличную часть документа, имея ссылку на документ?

ОбъектДок = Док.ПолучитьОбъект(); 
НоваяСтрока = ОбъектДок.Товары.Добавить(); 

// Заполнить значения реквизитов. 
НоваяСтрока.Количество = 10; 
НоваяСтрока.Цена = 55;  

// Записать документ. 
ОбъектДок.Записать();          
Как удалить строки из табличной части документа?

ОбъектДокумента = Документ.ПолучитьОбъект(); 
ОбъектДокумента.Товары.Очистить();          
Как перебрать строки документа?

Для Каждого ТекущаяСтрока Из Документ.Товары Цикл 
	// Действия со строкой табличной части. 
КонецЦикла; 


СтаршийИндекс = Документ.Товары.Количество() - 1; 
Для Сч = 0 по СтаршийИндекс Цикл 
	// Действия со строкой табличной части.
КонецЦикла;          
Как выгрузить табличную часть документа?

ТаблицаТоваровДокумента = Документ.Товары.Выгрузить();          
Как посчитать итог в табличной части документа?

ВсегоПоКолонкеСумма = Документ.Товары.Итог("Сумма");         
Как провести документ?

НужныйДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);          
Как перебрать документы?

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


Запрос = Новый Запрос; 
Запрос.Текст = " 
	|ВЫБРАТЬ 
	|	РеализацияТоваровУслуг.Ссылка 
	|ИЗ 
	|	Документ. РеализацияТоваровУслуг КАК РеализацияТоваровУслуг 
	|ГДЕ 
	|	РеализацияТоваровУслуг.Контрагент = &Контрагент 
	|	И 
	|	(РеализацияТоваровУслуг.Номер < 100 | ИЛИ | РеализацияТоваровУслуг.Дата < ДАТАВРЕМЯ(2005, 1, 1)) 
	|	И 
	|	РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)"; 

Запрос.УстановитьПараметр("Контрагент", ОтбКонтрагент); 
Запрос.УстановитьПараметр("Номенклатура", ОтбНоменклатура); 

Результат = Запрос.Выполнить(); 
Выборка = Результат.Выбрать(); 
Пока Выборка.Следующий() Цикл 
	// действия с документом - элементом выборки, 
	// его значение содержится в переменной Выборка 
КонецЦикла;         
Как пометить на удаление все приходные накладные?

ДокументыВида = Документы.ПоступлениеТоваровУслуг.Выбрать(); 
Пока ДокументыВида.Следующий() Цикл 
	ДокОбъект = ДокументыВида.ПолучитьОбъект(); 
	ДокОбъект.УстановитьПометкуУдаления(Истина); 
КонецЦикла;          
Как, имея ссылку на документ, создать в базе его копию?

ДокументКопия = ИсходныйДокумент.Скопировать(); 
ДокументКопия.Дата = РабочаяДата; 
ДокументКопия.Записать(); 

ДокументКопия.Дата = ИсходныйДокумент.Дата;          
Как, имея ссылку на документ, прочитать его движения по регистру?

Запрос = Новый Запрос; 
Запрос.Текст ="ВЫБРАТЬ * 
	|ИЗ 
	|	РегистрНакопления.ОстаткиНоменклатуры КАК ОстаткиНоменклатуры 
	|ГДЕ 
	|	ОстаткиНоменклатуры.Регистратор = &Регистратор"; 

Запрос.УстановитьПараметр("Регистратор", ПолеВводаРегистратор); 

НаборЗаписейРегистра = Движения.ОстаткиНоменклатуры; 
НаборЗаписейРегистра.Прочитать(); 
Для Каждого Запись из НаборЗаписейРегистра Цикл 
	// Чтение и модификация очередного движения. 
КонецЦикла; 


Для Каждого НаборЗаписейРегистра из Движения Цикл 
	НаборЗаписейРегистра.Прочитать(); 
	Для Каждого Запись из НаборЗаписейРегистра Цикл 
		// Чтение и модификация очередного движения. 
	КонецЦикла; 
КонецЦикла;          
Как определить, по каким регистрам документ выполнил движения?

ВЫБРАТЬ ПЕРВЫЕ 1 
	"Внутренние заказы" КАК Регистр 
ИЗ 
	РегистрНакопления.ВнутренниеЗаказы КАК ВнутренниеЗаказы 
ГДЕ 
	ВнутренниеЗаказы.Регистратор = &Регистратор 

ОБЪЕДИНИТЬ 

ВЫБРАТЬ ПЕРВЫЕ 1 
	"Заказы поставщикам" КАК Регистр 
ИЗ 
	РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыПоставщикам 
ГДЕ 
	ЗаказыПоставщикам.Регистратор = &Регистратор 

ОБЪЕДИНИТЬ 

ВЫБРАТЬ ПЕРВЫЕ 1 
	"Размещение заказов покупателей" КАК Регистр 
ИЗ 
	РегистрНакопления.РазмещениеЗаказовПокупателей КАК РазмещениеЗаказовПокупателей 
ГДЕ 
	РазмещениеЗаказовПокупателей.Регистратор = &Регистратор 

ОБЪЕДИНИТЬ 

ВЫБРАТЬ ПЕРВЫЕ 1 
	"Товары в резерве на складах" КАК Регистр 
ИЗ 
	РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах 
ГДЕ 
	ТоварыВРезервеНаСкладах.Регистратор = &Регистратор          
Как в табличной части документа удалить строки с нулевым значением реквизита "Количество"?

ОбъектДок = СсылкаДок.ПолучитьОбъект(); 
СтруктураДляПоиска = Новый Структура("Количество", 0); 

ТабличнаяЧастьДок = ОбъектДок.Товары; 
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска); 

Для каждого Строка Из МассивПустыхСтрок Цикл 
	ТабличнаяЧастьДок.Удалить(Строка); 
КонецЦикла; 

ОбъектДок.Записать(); 

СтруктураДляПоиска = Новый Структура("Количество", 0); 

МассивПустыхСтрок = Товары.НайтиСтроки(СтруктураДляПоиска); 

Для каждого Строка Из МассивПустыхСтрок Цикл 
	Товары.Удалить(Строка); 
КонецЦикла;          
Как очистить колонку "СтавкаНДС" в табличном поле "Товары" уже заполненного документа?

Процедура ТоварыСтавкаНДСПриИзменении(Элемент) 

	// Рассчитать реквизиты табличной части. 
	РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект); 

КонецПроцедуры // ТоварыСтавкаНДСПриИзменении() 


Для Каждого Строка из Товары Цикл 
	Строка.СтавкаНДС = Неопределено; 
	// Передать управление на процедуру, вызываемую 
	// из обработчика события "ПриИзменении" для поля ввода "СтавкаНДС" 
	ЭлементыФормы.Товары.ТекущаяСтрока = Строка; 
	РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект); 
КонецЦикла;          
Как заполнить значения свойств нового документа на основании существующего?

НовыйСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); 
ЗаполнитьЗначенияСвойств(НовыйСчет, ДокументЗаказа, , "Дата"); 

// Заполнить табличную часть Товары. 
Для Каждого СтрокаТоваровЗаказа Из ДокументЗаказа.Товары Цикл 
	ЗаполнитьЗначенияСвойств(НовыйСчет.Товары.Добавить(), СтрокаТоваровЗаказа); 
КонецЦикла; 

// Заполнить табличную часть ВозвратнаяТара 
Для Каждого СтрокаТарыЗаказа Из ДокументЗаказа.ВозвратнаяТара Цикл 
	ЗаполнитьЗначенияСвойств(НовыйСчет.ВозвратнаяТара.Добавить(), СтрокаТарыЗаказа); 
КонецЦикла; 

// Заполнить табличную часть Услуги 
Для Каждого СтрокаУслугЗаказа Из ДокументЗаказа.Услуги Цикл 
	ЗаполнитьЗначенияСвойств(НовыйСчет.Услуги.Добавить(), СтрокаУслугЗаказа); 
КонецЦикла; 

НовыйСчет.ЗаказПокупателя = ДокументЗаказа; 

Форма = НовыйСчет.ПолучитьФорму(); 
Форма.Открыть();          
Как получить перечень приходных накладных, в которых не заполнены номенклатурные позиции?

Запрос = Новый Запрос; 
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ 
	|	ПриходнаяТовары.Ссылка как Накладные 
	|ИЗ 
	|	Документ.ПоступлениеТоваровУслуг.Товары КАК ПриходнаяТовары 
	|ГДЕ 
	|	ПриходнаяТовары.Номенклатура = &ПустаяНоменклатура"; 

Запрос.УстановитьПараметр("ПустаяНоменклатура", Справочники.Номенклатура.ПустаяСсылка()); 

ТаблицаНакладных = Запрос.Выполнить();          
Как на дату расходной накладной определить курс валюты управленческого учета? Валюта управленческого учета храниться в периодическом регистре сведений.

ВЫБРАТЬ 
	КурсыВалютСрезПоследних.Валюта КАК ВалютаУпр, 
	КурсыВалютСрезПоследних.Курс КАК КурсУпр 
ИЗ 
	РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта В 
(ВЫБРАТЬ 
	УчетнаяПолитикаСрезПоследних.ВалютаУправленческая 
ИЗ 
	РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаДокумента, ) 
	КАК УчетнаяПолитикаСрезПоследних ) 
) КАК КурсыВалютСрезПоследних          
Как из формы документа вызвать его неоперативное проведение?

Процедура ОсновныеДействияФормыОК(Кнопка) 
	ЭтаФорма.ИспользоватьРежимПроведения = ИспользованиеРежимаПроведения.Неоперативный; 
	ЗаписатьВФорме(РежимЗаписиДокумента.Проведение); 
	Закрыть(); 
КонецПроцедуры          
Как в обработке проведения получить остатки, актуальные на позицию документа?

Запрос.Текст = " ВЫБРАТЬ 
	|	ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 
	|	ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток 
	|ИЗ 
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ПараметрПериод, 
	|								ДоговорКонтрагента = &Договор 
	|								И 
	|								Сделка =&Сделка) КАК ВзаиморасчетыСКонтрагентамиОстатки"; 

Запрос.УстановитьПараметр("ПараметрПериод", МоментВремени());           
Как определить количество документов и количество разных значений реквизита в таблице записей документа?

ВЫБРАТЬ 
	КОЛИЧЕСТВО(РегистрацияПростоевВОрганизации.Ссылка) КАК Случаев, 
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегистрацияПростоевВОрганизации.ФизЛицо) КАК Работников 
ИЗ 
	Документ.РегистрацияПростоевВОрганизации КАК РегистрацияПростоевВОрганизации 
ГДЕ 
	РегистрацияПростоевВОрганизации.Проведен           
В последовательность "ПартионныйУчет" добавлено измерение "Организация". Как теперь получить данные по границам последовательности для каждого значения этого измерения?

ТаблицаГраниц = Последовательности.ПартионныйУчет.ПолучитьГраницы("Организация"); 
Для Каждого СтрокаТаблицыГраниц Из ТаблицаГраниц Цикл 
	Организация = СтрокаТаблицыГраниц.Организация; 
	ДатаГП = СтрокаТаблицыГраниц.Граница.Дата; 
	СсылкаГП = СтрокаТаблицыГраниц.Граница.Ссылка; 
КонецЦикла;          
Как быстро получить информацию, по всем объектам, находящимся в компетенции конкретного менеджера (элемент справочника "Пользователи") по продажам?

МассивСсылок = КритерииОтбора.КомпетенцияМенеджераПродаж.Найти(Менеджер); 
Для Каждого Ссылка из МассивСсылок Цикл 
	Сообщить(Ссылка); 
КонецЦикла; 

ВЫБРАТЬ 
	КомпетенцияМенеджераПродаж.Ссылка 
ИЗ 
	КритерийОтбора.КомпетенцияМенеджераПродаж(&Менеджер) КАК КомпетенцияМенеджераПродаж          



Задайте вопрос программисту 1С

+7 901 312 83 57