ДокОперация = Документы.Операция.СоздатьДокумент();
//Добавляем проводку
НовЗапись = ДокОперация.Движения.Хозрасчетный.Добавить();
НовЗапись.Активность = 1;
НовЗапись.Сумма = Сумма;
НовЗапись.СчетДт = СчетДт; //тип ПланыСчетов "Хозрасчетный"
НовЗапись.СчетКт = СчетКт; //тип ПланыСчетов "Хозрасчетный"
//1-й вариант. Установить значение субконто
НовЗапись.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Текущий ремонт");
//2-й вариант. Установить значение субконто
НовЗапись.СубконтоДт.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат, Справочники.СтатьиЗатрат.НайтиПоНаименованию("Текущий ремонт"));
//Записать документ
ДокОперация.Записать();
-----------------------------------------------------------------------------------------------------------
//Установка значения субконто, когда известно его значение, но не известно название и номер соответствующего субконто у счета
//Будем перебирать все субконто у счета и сравнивать их типы значения с типом присваиваемого значения
Проводка = Движения.Хозрасчетный.Добавить();
Проводка.СчетДт = СчетДт;
//1-й вариант. Установить значение субконто по его виду
//Известно значение субконто, но неизвестно его название и номер
Для Каждого ВидСубконто Из Проводка.СчетДт.ВидыСубконто Цикл
Если Строка(ТипЗнч(ЗначениеСубконто)) = Строка(ВидСубконто.ВидСубконто.ТипЗначения) Тогда
Проводка.СубконтоДт[ВидСубконто.ВидСубконто.Ссылка] = ЗначениеСубконто;
КонецЕсли;
КонецЦикла;
Проводка.СчетКт = СчетКт;
//2-й вариант. Установить значение субконто по его виду
//Известно значение субконто, но неизвестно его название и номер
Для Каждого ВидСубконто Из Проводка.СчетКт.ВидыСубконто Цикл
ЗначениеСубконто = Справочники[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначение().Метаданные().Имя].НайтиПоРеквизиту("ПолеПоискаВСправочнике", ЗначениеДляСубконто);
Проводка.СубконтоКт[ВидСубконто.ВидСубконто.Ссылка] = ЗначениеСубконто;
КонецЦикла;
//Заполнить все остальное у проводки
Проводка.Организация = Организация;
Проводка.Период = ЭтотОбъект.Дата;
Проводка.Регистратор = ЭтотОбъект.Ссылка;
Проводка.Сумма = КакаяТоСумма;
//Записать проводку
Движения.Хозрасчетный.Записать();
//Регистр накопления должен быть подчинен регистратору
//Отбор можно установить только по регистратору
//Без отбора по регистратору записи в регистр накопления добавить нельзя
Набор = РегистрыНакопления.ПартииТМЦ.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(НужныйСпецДокумент);
//Если редактируем а не создаем новый
Набор.Прочитать();
//Вид движения должен быть известен для регистра накопления
НоваяЗапись = Набор.ДобавитьПриход();
НоваяЗапись.Партия = НужнаяПартия;
НоваяЗапись.Количество = НужноеКоличество;
Набор.Записать();
--------------------------------------------------------------------
//Перебор записей регистра накопления в цикле
Выборка = РегистрыНакопления.Остатки.Выбрать();
Пока Выборка.Следующий() Цикл
Если СокрЛП(Выборка.Комментарий) = ЗаданнаяСтрока Тогда
//
КонецЕсли;
КонецЦикла;
--------------------------------------------------------------------
//Получить обороты по регистру накопления. На выходе получим таблицу значений
//"Номенклатура, Склад" – измерения
//"Количество" – ресурсы
Остатки = РегистрыНакопления.Остатки;
Фильтр = Новый Структура("Номенклатура","Склад");
Фильтр.Номенклатура = ВыбНоменклатура;
Фильтр.Склад = ВыбСклад;
ТабОборотов = Остатки.Обороты(ДатаНач, ДатаКон, Фильтр, "Номенклатура,Склад", "Количество");
//РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто – проводки
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстаткиИОбороты.Счет КАК Счет,
ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Счет) КАК СчетПредставление,
СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
СуммаОборотДт КАК СуммаОборотДт,
СуммаОборотКт КАК СуммаОборотКт,
СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
Субконто1 КАК Субконто1,
ПРЕДСТАВЛЕНИЕ(Субконто1) КАК Субконто1Представление
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты
(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация ) КАК ОстаткиИОбороты
ИТОГИ
СУММА(СуммаНачальныйОстатокДт),
СУММА(СуммаНачальныйОстатокКт),
СУММА(СуммаОборотДт),
СУММА(СуммаОборотКт),
СУММА(СуммаКонечныйОстатокДт),
СУММА(СуммаКонечныйОстатокКт)
ПО
ОБЩИЕ,
Счет ИЕРАРХИЯ КАК Счет,
Субконто1
АВТОУПОРЯДОЧИВАНИЕ
ТекущийДок = ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка.ПолучитьОбъект();
Документ.Выбрать();
Пока Документ.Следующий() Цикл
//
КонецЦикла;
//"ОС" - наименование табличной части
Тч = Док.ОС;
Тч[0].НалоговаяГруппаОС = Справочники.НалоговыеГруппы.НайтиПоНаименованию("Четвертая (с 2004 г)");
Док.Записать(РежимЗаписиДокумента.Проведение);
//------------------------------------------------------------------
//Поиск в табличной части документа
//"Платежи" - наименование табличной части
Сообщить(Док.Платежи.Найти(ТоЧтоНужноНайти, "РеквизитВТабЧастиГдеИскатьЗначение")["РеквизитВТабЧастиОткудаВзятьЗначение"]);
//------------------------------------------------------------------
//Cделать текущей строку табличной части формы документа
//"Выписки" - наименование табличной части
ЗаписьВыписка = ДокБанковскаяВыписка.Выписки.Добавить();
ЗаписьВыписка.Реквизит1 = "Реквизит1";
ЗаписьВыписка.Реквизит2 = "Реквизит2";
ФормаВыписка = ДокБанковскаяВыписка.ПолучитьФорму("ФормаДокумента");
ФормаВыписка.ЭлементыФормы.Выписки.ТекущаяСтрока = ЗаписьВыписка;
ФормаВыписка.Открыть();
//------------------------------------------------------------------
//Удалить записи из табличной части документа с помощью структуры
Отбор = Новый Структура;
Отбор.Вставить("КодОбъекта", ЗначениеКодОбъекта);
Документ = Документы.ПриходнаяНакладная.НайтиПоНаименованию("Наименование").ПолучитьОбъект();
//Удаляем записи табличной части
ЗаписиТабЧасти = Документ["НазваниеТабЧасти"].НайтиСтроки(Отбор);
Для Каждого ЗаписьТабЧасти Из ЗаписиТабЧасти Цикл
Документ["НазваниеТабЧасти"].Удалить(ЗаписьТабЧасти);
КонецЦикла;
//------------------------------------------------------------------
//Удалить строки (записи) из табличной части документа в цикле (при переборе)
Док = ДокБанковскаяВыписка.ПолучитьОбъект();
КоличествоЗаписей = Док.Выписки.Количество();
КоличествоОборотов = 0;
Для ъ = 0 По КоличествоЗаписей - 1 Цикл
КоличествоОборотов = КоличествоОборотов + 1;
Если Док.Выписки[ъ].ИмяПоля = Истина Тогда
Док.Выписки.Удалить(Док.Выписки[ъ]);
ъ = ъ - 1;
КонецЕсли;
Если КоличествоОборотов = КоличествоЗаписей Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Док.Записать();