Справочные материалы по 1С
Документы в 1С 8.x
- Как создать новый документ?
- Как найти документ?
- Как открыть форму документа?
- Как изменить значение реквизита и записать документ?
- Как добавить строку в табличную часть документа, имея ссылку на документ?
- Как удалить строки из табличной части документа?
- Как перебрать строки документа?
- Как выгрузить табличную часть документа?
- Как посчитать итог в табличной части документа?
- Как провести документ?
- Как перебрать документы?
- Как пометить на удаление все приходные накладные?
- Как, имея ссылку на документ, создать в базе его копию?
- Как, имея ссылку на документ, прочитать его движения по регистру?
- Как определить, по каким регистрам документ выполнил движения?
- Как в табличной части документа удалить строки с нулевым значением реквизита "Количество"?
- Как очистить колонку "СтавкаНДС" в табличном поле "Товары" уже заполненного документа?
- Как заполнить значения свойств нового документа на основании существующего?
- Как получить перечень приходных накладных, в которых не заполнены номенклатурные позиции?
- Как на дату расходной накладной определить курс валюты управленческого учета? Валюта управленческого учета храниться в периодическом регистре сведений.
- Как из формы документа вызвать его неоперативное проведение?
- Как в обработке проведения получить остатки, актуальные на позицию документа?
- Как определить количество документов и количество разных значений реквизита в таблице записей документа?
- В последовательность "ПартионныйУчет" добавлено измерение "Организация". Как теперь получить данные по границам последовательности для каждого значения этого измерения?
- Как быстро получить информацию, по всем объектам, находящимся в компетенции конкретного менеджера (элемент справочника "Пользователи") по продажам?
Как создать новый документ?
НовыйДокумент = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
Как найти документ?
ИскомыйДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, Дата(2005, 1, 1));
Если НЕ ИскомыйДокумент.Пустая() Тогда
// Выполнить действия в случае обнаружения такого документа. …
КонецЕсли;
Как открыть форму документа?
Форма = ИскомыйДокумент.ПолучитьФорму();
Форма.Открыть();
Как изменить значение реквизита и записать документ?
ДокОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокОбъект.Ответственный = глТекущийПользователь;
ДокОбъект.Записать();
// Запись с проведением документа
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
// Запись с отменой проведения
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Как добавить строку в табличную часть документа, имея ссылку на документ?
ОбъектДок = Док.ПолучитьОбъект();
НоваяСтрока = ОбъектДок.Товары.Добавить();
// Заполнить значения реквизитов.
НоваяСтрока.Количество = 10;
НоваяСтрока.Цена = 55;
// Записать документ.
ОбъектДок.Записать();
Как удалить строки из табличной части документа?
ОбъектДокумента = Документ.ПолучитьОбъект();
ОбъектДокумента.Товары.Очистить();
Как перебрать строки документа?
Для Каждого ТекущаяСтрока Из Документ.Товары Цикл
// Действия со строкой табличной части.
КонецЦикла;
СтаршийИндекс = Документ.Товары.Количество() - 1;
Для Сч = 0 по СтаршийИндекс Цикл
// Действия со строкой табличной части.
КонецЦикла;
Как выгрузить табличную часть документа?
ТаблицаТоваровДокумента = Документ.Товары.Выгрузить();
Как посчитать итог в табличной части документа?
ВсегоПоКолонкеСумма = Документ.Товары.Итог("Сумма");
Как провести документ?
НужныйДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Как перебрать документы?
ВыборкаДокументов = Документы.Расходная.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
Пока ВыборкаДокументов.Следующий() Цикл
// Действия с документом - элементом выборки,
// его значение содержится в переменной ВыборкаДокументов
КонецЦикла
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ. РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Контрагент = &Контрагент
| И
| (РеализацияТоваровУслуг.Номер < 100 | ИЛИ | РеализацияТоваровУслуг.Дата < ДАТАВРЕМЯ(2005, 1, 1))
| И
| РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)";
Запрос.УстановитьПараметр("Контрагент", ОтбКонтрагент);
Запрос.УстановитьПараметр("Номенклатура", ОтбНоменклатура);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// действия с документом - элементом выборки,
// его значение содержится в переменной Выборка
КонецЦикла;
Как пометить на удаление все приходные накладные?
ДокументыВида = Документы.ПоступлениеТоваровУслуг.Выбрать();
Пока ДокументыВида.Следующий() Цикл
ДокОбъект = ДокументыВида.ПолучитьОбъект();
ДокОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;
Как, имея ссылку на документ, создать в базе его копию?
ДокументКопия = ИсходныйДокумент.Скопировать();
ДокументКопия.Дата = РабочаяДата;
ДокументКопия.Записать();
ДокументКопия.Дата = ИсходныйДокумент.Дата;
Как, имея ссылку на документ, прочитать его движения по регистру?
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ *
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
|ГДЕ
| ОстаткиНоменклатуры.Регистратор = &Регистратор";
Запрос.УстановитьПараметр("Регистратор", ПолеВводаРегистратор);
НаборЗаписейРегистра = Движения.ОстаткиНоменклатуры;
НаборЗаписейРегистра.Прочитать();
Для Каждого Запись из НаборЗаписейРегистра Цикл
// Чтение и модификация очередного движения.
КонецЦикла;
Для Каждого НаборЗаписейРегистра из Движения Цикл
НаборЗаписейРегистра.Прочитать();
Для Каждого Запись из НаборЗаписейРегистра Цикл
// Чтение и модификация очередного движения.
КонецЦикла;
КонецЦикла;
Как определить, по каким регистрам документ выполнил движения?
ВЫБРАТЬ ПЕРВЫЕ 1
"Внутренние заказы" КАК Регистр
ИЗ
РегистрНакопления.ВнутренниеЗаказы КАК ВнутренниеЗаказы
ГДЕ
ВнутренниеЗаказы.Регистратор = &Регистратор
ОБЪЕДИНИТЬ
ВЫБРАТЬ ПЕРВЫЕ 1
"Заказы поставщикам" КАК Регистр
ИЗ
РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыПоставщикам
ГДЕ
ЗаказыПоставщикам.Регистратор = &Регистратор
ОБЪЕДИНИТЬ
ВЫБРАТЬ ПЕРВЫЕ 1
"Размещение заказов покупателей" КАК Регистр
ИЗ
РегистрНакопления.РазмещениеЗаказовПокупателей КАК РазмещениеЗаказовПокупателей
ГДЕ
РазмещениеЗаказовПокупателей.Регистратор = &Регистратор
ОБЪЕДИНИТЬ
ВЫБРАТЬ ПЕРВЫЕ 1
"Товары в резерве на складах" КАК Регистр
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
ГДЕ
ТоварыВРезервеНаСкладах.Регистратор = &Регистратор
Как в табличной части документа удалить строки с нулевым значением реквизита "Количество"?
ОбъектДок = СсылкаДок.ПолучитьОбъект();
СтруктураДляПоиска = Новый Структура("Количество", 0);
ТабличнаяЧастьДок = ОбъектДок.Товары;
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
Для каждого Строка Из МассивПустыхСтрок Цикл
ТабличнаяЧастьДок.Удалить(Строка);
КонецЦикла;
ОбъектДок.Записать();
СтруктураДляПоиска = Новый Структура("Количество", 0);
МассивПустыхСтрок = Товары.НайтиСтроки(СтруктураДляПоиска);
Для каждого Строка Из МассивПустыхСтрок Цикл
Товары.Удалить(Строка);
КонецЦикла;
Как очистить колонку "СтавкаНДС" в табличном поле "Товары" уже заполненного документа?
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
// Рассчитать реквизиты табличной части.
РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);
КонецПроцедуры // ТоварыСтавкаНДСПриИзменении()
Для Каждого Строка из Товары Цикл
Строка.СтавкаНДС = Неопределено;
// Передать управление на процедуру, вызываемую
// из обработчика события "ПриИзменении" для поля ввода "СтавкаНДС"
ЭлементыФормы.Товары.ТекущаяСтрока = Строка;
РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);
КонецЦикла;
Как заполнить значения свойств нового документа на основании существующего?
НовыйСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
ЗаполнитьЗначенияСвойств(НовыйСчет, ДокументЗаказа, , "Дата");
// Заполнить табличную часть Товары.
Для Каждого СтрокаТоваровЗаказа Из ДокументЗаказа.Товары Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.Товары.Добавить(), СтрокаТоваровЗаказа);
КонецЦикла;
// Заполнить табличную часть ВозвратнаяТара
Для Каждого СтрокаТарыЗаказа Из ДокументЗаказа.ВозвратнаяТара Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.ВозвратнаяТара.Добавить(), СтрокаТарыЗаказа);
КонецЦикла;
// Заполнить табличную часть Услуги
Для Каждого СтрокаУслугЗаказа Из ДокументЗаказа.Услуги Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.Услуги.Добавить(), СтрокаУслугЗаказа);
КонецЦикла;
НовыйСчет.ЗаказПокупателя = ДокументЗаказа;
Форма = НовыйСчет.ПолучитьФорму();
Форма.Открыть();
Как получить перечень приходных накладных, в которых не заполнены номенклатурные позиции?
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПриходнаяТовары.Ссылка как Накладные
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПриходнаяТовары
|ГДЕ
| ПриходнаяТовары.Номенклатура = &ПустаяНоменклатура";
Запрос.УстановитьПараметр("ПустаяНоменклатура", Справочники.Номенклатура.ПустаяСсылка());
ТаблицаНакладных = Запрос.Выполнить();
Как на дату расходной накладной определить курс валюты управленческого учета? Валюта управленческого учета храниться в периодическом регистре сведений.
ВЫБРАТЬ
КурсыВалютСрезПоследних.Валюта КАК ВалютаУпр,
КурсыВалютСрезПоследних.Курс КАК КурсУпр
ИЗ
РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта В
(ВЫБРАТЬ
УчетнаяПолитикаСрезПоследних.ВалютаУправленческая
ИЗ
РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаДокумента, )
КАК УчетнаяПолитикаСрезПоследних )
) КАК КурсыВалютСрезПоследних
Как из формы документа вызвать его неоперативное проведение?
Процедура ОсновныеДействияФормыОК(Кнопка)
ЭтаФорма.ИспользоватьРежимПроведения = ИспользованиеРежимаПроведения.Неоперативный;
ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
Закрыть();
КонецПроцедуры
Как в обработке проведения получить остатки, актуальные на позицию документа?
Запрос.Текст = " ВЫБРАТЬ
| ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,
| ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ПараметрПериод,
| ДоговорКонтрагента = &Договор
| И
| Сделка =&Сделка) КАК ВзаиморасчетыСКонтрагентамиОстатки";
Запрос.УстановитьПараметр("ПараметрПериод", МоментВремени());
Как определить количество документов и количество разных значений реквизита в таблице записей документа?
ВЫБРАТЬ
КОЛИЧЕСТВО(РегистрацияПростоевВОрганизации.Ссылка) КАК Случаев,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегистрацияПростоевВОрганизации.ФизЛицо) КАК Работников
ИЗ
Документ.РегистрацияПростоевВОрганизации КАК РегистрацияПростоевВОрганизации
ГДЕ
РегистрацияПростоевВОрганизации.Проведен
В последовательность "ПартионныйУчет" добавлено измерение "Организация". Как теперь получить данные по границам последовательности для каждого значения этого измерения?
ТаблицаГраниц = Последовательности.ПартионныйУчет.ПолучитьГраницы("Организация");
Для Каждого СтрокаТаблицыГраниц Из ТаблицаГраниц Цикл
Организация = СтрокаТаблицыГраниц.Организация;
ДатаГП = СтрокаТаблицыГраниц.Граница.Дата;
СсылкаГП = СтрокаТаблицыГраниц.Граница.Ссылка;
КонецЦикла;
Как быстро получить информацию, по всем объектам, находящимся в компетенции конкретного менеджера (элемент справочника "Пользователи") по продажам?
МассивСсылок = КритерииОтбора.КомпетенцияМенеджераПродаж.Найти(Менеджер);
Для Каждого Ссылка из МассивСсылок Цикл
Сообщить(Ссылка);
КонецЦикла;
ВЫБРАТЬ
КомпетенцияМенеджераПродаж.Ссылка
ИЗ
КритерийОтбора.КомпетенцияМенеджераПродаж(&Менеджер) КАК КомпетенцияМенеджераПродаж