Как получить сальдо дебетовое или кредитовое? Примеры универсальных функций 1С для
получения Конечных Сальдо Дк и Дт :
Код 1C v 8.х
знОрганизация = Организация;
КонПериода = ТекущаяДата( ) ;
Функция СКД(Счет, ДатаО = Неопределено)
Если ДатаО = Неопределено Тогда ДатаО = КонецДня( КонПериода) КонецЕсли ;
СчетПЛ = ПланыСчетов. Хозрасчетный. НайтиПоКоду( Счет) ;
Если СчетПЛ = ПланыСчетов. Хозрасчетный. ПустаяСсылка( ) Тогда
Возврат "Нет счета!" ;
КонецЕсли ;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстатокДт,
| ХозрасчетныйОстатки.СуммаОстатокКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&DatO, Счет В ИЕРАРХИИ(&Scet), , Организация = &Organ) КАК ХозрасчетныйОстатки
|" ;
Запрос. УстановитьПараметр( "DatO" , Новый Граница( ДатаО, ВидГраницы. Включая) ) ;
Запрос. УстановитьПараметр( "Scet" , СчетПЛ) ;
Запрос. УстановитьПараметр( "Organ" , знОрганизация) ;
Результат = Запрос. Выполнить( ) ;
Результат = Результат. Выбрать( ) ;
Если Результат. Следующий( ) Тогда
Возврат Результат. СуммаОстатокДт;
Иначе
Возврат 0 ;
КонецЕсли ;
КонецФункции
Функция СКК(Счет, ДатаО = Неопределено)
Если ДатаО = Неопределено Тогда ДатаО = КонецДня( КонПериода) КонецЕсли ;
СчетПЛ = ПланыСчетов. Хозрасчетный. НайтиПоКоду( Счет) ;
Если СчетПЛ = ПланыСчетов. Хозрасчетный. ПустаяСсылка( ) Тогда
Возврат "Нет счета!" ;
КонецЕсли ;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстатокДт,
| ХозрасчетныйОстатки.СуммаОстатокКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&DatO, Счет В ИЕРАРХИИ (&Scet), , Организация = &Organ) КАК ХозрасчетныйОстатки" ;
Запрос. УстановитьПараметр( "DatO" , Новый Граница( ДатаО, ВидГраницы. Включая) ) ;
Запрос. УстановитьПараметр( "Scet" , СчетПЛ) ;
Запрос. УстановитьПараметр( "Organ" , знОрганизация) ;
Результат = Запрос. Выполнить( ) ;
Результат = Результат. Выбрать( ) ;
Если Результат. Следующий( ) Тогда
Возврат Результат. СуммаОстатокКт;
Иначе
Возврат 0 ;
КонецЕсли ;
КонецФункции
Пример использования:
Код 1C v 8.х ТекЗнач = СКД( "04.01" ) - СКК( "05" ) + СКД( "08.05" ) ;
Категория:
Регистры бухгалтерии Проведение документа по регистру бухгалтерии Задача: Есть два склада Склад1 и Склад2. Нужно переместить определенное количество товара со склада1 на склад2. При списании со склада1 нужно проверять остаток, что хватает товара. Проведение сделать по регистру бухгалтерии.(проверку тоже по регистру бухгалтерии).
Решение: В Шапке документа Склад1 и Склад2. В Табличной части номенклатура и количество.
Код 1C v 8.х Процедура ОбработкаПроведения(Отказ, Режим)
Движения. Хозрасчетный. Очистить( ) ;
Движения. Хозрасчетный. Записать( ) ;
Движения. Хозрасчетный. Записывать = Истина ;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.КоличествоОстатокДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
|ГДЕ
| ХозрасчетныйОстатки.Счет = &Счет
| И ХозрасчетныйОстатки.Субконто1 = &Субконто1
| И ХозрасчетныйОстатки.Субконто2 = &Субконто2" ;
Запрос. УстановитьПараметр( "Счет" , ПланыСчетов. Хозрасчетный. ТоварыНаСкладах) ;
Запрос. УстановитьПараметр( "Субконто1" , ТекСтрокаТовары. Номенклатура) ;
Запрос. УстановитьПараметр( "Субконто2" , Склад1 ) ;
Выборка = Запрос. Выполнить( ) . Выбрать( ) ;
Если Выборка. Следующий( ) Тогда
Если Выборка. КоличествоОстатокДт < ТекСтрокаТовары. Количество Тогда
Сообщить( "На складе1 остака: " + СокрЛП( Выборка. КоличествоОстатокДт) ) ;
Отказ = Истина ;
Возврат ;
КонецЕсли ;
Иначе
Сообщить( "нет остатка на складе1" ) ;
Отказ = Истина ;
Возврат ;
КонецЕсли ;
Движение = Движения. Хозрасчетный. Добавить( ) ;
Движение. СчетКт = ПланыСчетов. Хозрасчетный. ТоварыНаСкладах;
Движение. СчетДт = ПланыСчетов. Хозрасчетный. ТоварыНаСкладах;
Движение. Период = Дата;
Движение. КоличествоКт = ТекСтрокаТовары. Количество;
Движение. ДатаЗаписи = Дата;
Движение. Содержание = "Перемещение" ;
БухгалтерскийУчет. УстановитьСубконто( Движение. СчетКт, Движение. СубконтоКт,
"Номенклатура" , ТекСтрокаТовары. Номенклатура) ;
БухгалтерскийУчет. УстановитьСубконто( Движение. СчетКт, Движение. СубконтоКт,
"Склады" , Склад1 ) ;
БухгалтерскийУчет. УстановитьСубконто( Движение. СчетДт, Движение. СубконтоДт,
"Номенклатура" , ТекСтрокаТовары. Номенклатура) ;
БухгалтерскийУчет. УстановитьСубконто( Движение. СчетДт, Движение. СубконтоДт,
"Склады" , Склад2 ) ;
КонецЦикла ;
КонецПроцедуры
Категория:
Регистры бухгалтерии Как в запросе задать условие по типы значения? Код 1C v 8.х
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Покупатель
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &Период,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСНачисленныйПоОтгрузке),
| ,
| Организация = &Организация
| И Субконто2 ССЫЛКА Документ.РеализацияТоваровУслуг
| И Субконто1 В (&СписокПокупателей)
| И ВЫРАЗИТЬ(Субконто2 КАК Документ.РеализацияТоваровУслуг).ВидОперации =
| &ОперацияОтгрузка) КАК ХозрасчетныйОстатки" ;
Категория:
Запросы Как в запросе отобрать значения по Типу? Для того, чтобы определить отобрать по типу значения в запросе нужно использовать логический оператор "ССЫЛКА". Примером может служить вот такой фрагмент запроса из типовой конфигурации 1С:
Код 1C v 8.х Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Покупатель
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &Период,
| Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСНачисленныйПоОтгрузке),
| ,
| Организация = &Организация
| И Субконто2 ССЫЛКА Документ.РеализацияТоваровУслуг
| И Субконто1 В (&СписокПокупателей)
| И ВЫРАЗИТЬ(Субконто2 КАК Документ.РеализацияТоваровУслуг).ВидОперации =
| &ОперацияОтгрузка) КАК ХозрасчетныйОстатки" ;
В данном примере используется проверка, что субконто 2 содержит тип значения ссылки на документ Реализации товаров и услуг, чтобы потом уверенно использовать реквизит вид операции.
Категория:
Запросы Как найти первый документ, приведший к появлению кредитового остатка на счете? Код 1C v 8.х ВЫБРАТЬ ПЕРВЫЕ 1
ХозрасчетныйОстаткиИОбороты. Регистратор КАК Регистратор
ИЗ
РегистрБухгалтерии. Хозрасчетный. ОстаткиИОбороты( &ДатаН, &ДатаК, Регистратор, , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
ХозрасчетныйОстаткиИОбороты. СуммаКонечныйОстатокКт > 0
УПОРЯДОЧИТЬ ПО
ХозрасчетныйОстаткиИОбороты. Период,
Регистратор
Категория:
Регистры бухгалтерии Как перенести остаток со счета на счет? Код 1C v 8.х Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстатокДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, ,
| Субконто1 = &Контрагент И Организация = &Организация И Субконто2 = &Договор) КАК ХозрасчетныйОстатки" ;
Запрос. УстановитьПараметр( "Период" , Период1 ) ;
Запрос. УстановитьПараметр( "Контрагент" , Контрагент) ;
Запрос. УстановитьПараметр( "Договор" , Договор) ;
Запрос. УстановитьПараметр( "Организация" , Организация) ;
Запрос. УстановитьПараметр( "Счет" , ПланыСчетов. Хозрасчетный. РасчетыСПокупателями) ;
Выборка = Запрос. Выполнить( ) . Выбрать( ) ;
Если Выборка. Следующий( ) Тогда
Документ = Документы. ОперацияБух. СоздатьДокумент( ) ;
Документ. Дата = РабочаяДата;
Документ. Организация = Организация;
Документ. Содержание = "Погашение дебиторской задолженности" ;
Проводка = Документ. Движения. Хозрасчетный. Добавить( ) ;
Проводка. СчетДт = ПланыСчетов. Хозрасчетный. РасчетыСПокупателями;
Проводка. СчетКт = ПланыСчетов. Хозрасчетный. ПрочиеРасходы;
Проводка. СубконтоДт. Контрагенты = Контрагент;
Проводка. СубконтоДт. Договоры = Договор;
Проводка. Сумма = Выборка. СуммаОстатокДт;
Документ. СуммаОперации = Выборка. СуммаОстатокДт;
Форма = Документ. ПолучитьФорму( ) ;
Форма. Открыть( ) ;
КонецЕсли ;
Категория:
Регистры бухгалтерии Как получить остатки по счетам? Код 1C v 8.х "ВЫБРАТЬ
| ХозрасчетныйОстатки.Счет,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Счет),
| ХозрасчетныйОстатки.ВалютнаяСуммаОстатокДт КАК ВалютнаяСуммаОстатокДт,
| ХозрасчетныйОстатки.Счет.Порядок КАК СчетПорядок,
| ХозрасчетныйОстатки.Валюта КАК Валюта,
| ПРЕДСТАВЛЕНИЕ(ХозрасчетныйОстатки.Валюта)
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет.Валютный И Счет.Вид = &Активный, ,) КАК ХозрасчетныйОстатки
|УПОРЯДОЧИТЬ ПО
| СчетПорядок
|ИТОГИ
| СУММА(ВалютнаяСуммаОстатокДт)
|ПО
| Валюта" ;
Запрос. УстановитьПараметр( "Активный" , ВидСчета. Активный) ;
Запрос. УстановитьПараметр( "Дата" , Дата) ;
Категория:
Регистры бухгалтерии Как получить остаток по счету? Код 1C v 8.х Запрос = Новый Запрос;
Запрос. Текст = "
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1,
| ХозрасчетныйОстатки.Организация,
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки" ;
Запрос. УстановитьПараметр( "Период" , КонецДня( ДатаОтчета) ) ;
Запрос. УстановитьПараметр( "Счет" , ПланыСчетов. Хозрасчетный. ТоварыНаСкладах) ;
РезультатЗапроса = Запрос. Выполнить( ) ;
Категория:
Регистры бухгалтерии Выбрать Остатки и Обороты по указанным счетам, отбор по субконто и выгрузка результата в EXCEL Код 1C v 8.х Запрос= Новый Запрос;
Запрос. Текст= "
|ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Счет,
| ХозрасчетныйОстаткиИОбороты.Субконто1,
| ХозрасчетныйОстаткиИОбороты.Субконто2,
| ХозрасчетныйОстаткиИОбороты.Субконто3,
| ХозрасчетныйОстаткиИОбороты.Организация,
| ХозрасчетныйОстаткиИОбороты.СуммаОборот,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
| &ДатаНач,
| &ДатаКон,
| Период,
| ,
| Счет В (&Cчета),
| ," ;
Если Не Контрагент. Пустая( ) Тогда
Запрос. Текст= Запрос. Текст+ "
| Субконто1 = &Контрагент
| ИЛИ Субконто2 = &Договор" ;
КонецЕсли ;
Запрос. Текст= Запрос. Текст+ "
|) КАК ХозрасчетныйОстаткиИОбороты
|" ;
СписокСчетов= Новый СписокЗначений;
СписокСчетов. Добавить( ПланыСчетов. Хозрасчетный. РасчетыСПоставщикамиИПодрядчиками) ;
СписокСчетов. Добавить( ПланыСчетов. Хозрасчетный. РасчетыПоАвансамВыданным) ;
Запрос. УстановитьПараметр( "Cчета" , СписокСчетов) ;
Запрос. УстановитьПараметр( "ДатаКон" , ДатаК) ;
Запрос. УстановитьПараметр( "ДатаНач" , ДатаН) ;
Запрос. УстановитьПараметр( "Договор" , Договор) ;
Запрос. УстановитьПараметр( "Контрагент" , Контрагент) ;
Результат = Запрос. Выполнить( ) ;
ТабДок= ЭлементыФормы. ТД;
ТабДок. Очистить( ) ;
ПечатьТЗвТаб( ТабДок, Результат) ;
Режим = РежимДиалогаВыбораФайла. Сохранение;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( Режим) ;
ДиалогОткрытияФайла. ПолноеИмяФайла = "" ;
Фильтр = "Excel(*.xls)|*.xls" ;
ДиалогОткрытияФайла. Фильтр = Фильтр;
ДиалогОткрытияФайла. МножественныйВыбор = Ложь ;
ДиалогОткрытияФайла. Заголовок = "Выберите куда сохранить файл Excel" ;
Если ДиалогОткрытияФайла. Выбрать( ) Тогда
ПутьКФайлу = ДиалогОткрытияФайла. ПолноеИмяФайла;
КонецЕсли ;
ТабДок. Записать( ПутьКФайлу, ТипФайлаТабличногоДокумента. XLS97) ;
Категория:
Запросы