Закрытие остатков по регистрам накопления

Публикация № 927990

Разработка - Практика программирования

закрытие остатки регистры накопления

Гибкий способ закрытия остатков по регистрам накопления. ДЛЯ ПРОГРАММИСТОВ, НЕ ДЛЯ БУХГАЛТЕРОВ.

Как относительно быстро закрыть остатки по регистрам накопления. Разработано для конфигурации "Управление производственным предприятием", но частично доработав можно использовать с другими конфигурациями.

Делается на основе Инструменты разработчика (ИР). Тестировалось на версии 4.57

Задачу закрытия остатков можно разделить на два этапа - получение данных, занесение этих данных в документ. Все это можно сделать в Консоли запросов. Получение данных через запрос (со всеми имеющимися возможностями запросов), а результат запроса заносится в документ на вкладке "Обработка результата".

 

 

Код занесения данных 

//код адаптирован под конфигурацию "Управление производственным предприятием"

//исходные данные для заполнения
ДатаДокумента = ТекущаяДата();
ИмяРегистраНакопления = "ДенежныеСредства";

//Вариант 1. Создание нового документа.
ДокДвижения = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
ДокДвижения.Дата = ДатаДокумента;
ДокДвижения.УстановитьНовыйНомер();
//Вариант 2. Вставка в существующий документ. (Через кнопку Вставка/Ссылка на объект БД)
//ДокДвижения = Параметры.КорректировкаЗаписейРегистров03400000717От22_10_201816_12_02.ПолучитьОбъект();

РегистрМетаданные = Метаданные.РегистрыНакопления[ИмяРегистраНакопления];//этой строкой можем поймать ошибки

//заполняем данные, чтобы движения были видны в документе
СтрокаТЧ = ДокДвижения.ТаблицаРегистровНакопления.Добавить();
СтрокаТЧ.Имя = РегистрМетаданные.Имя;
СтрокаТЧ.Представление = РегистрМетаданные.Синоним;

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

//полученный (или дополненный) документ можно сразу записать, 
//а в текущей реализации документ НЕ ЗАПИСЫВАЕТСЯ СРАЗУ в базу данных
//ДокДвижения.Записать();
ОткрытьЗначение(ДокДвижения);

 

Грабли, примечания и дополнения.

Не просто так в кратком описании написано ДЛЯ ПРОГРАММИСТОВ, НЕ ДЛЯ БУХГАЛТЕРОВ. Гибкость и относительная простота требует понимания выполняемых действий и некоторую работу по доработке кода при применении.

1. И это весьма существенно, в коде необходимо прописывать значение ИмяРегистраНакопления.

2. В запросе необходимо выводить все поля регистра (это для начинающих программистов, иначе можете не закрыть именно эти остатки).

3. Если остатки выбираются из Таблицы остатков регистра накопления, то полям Ресурсов необходимо  дать синоним в соответствии с именами в конфигураторе (их легко посмотреть в конструкторе запроса).

3.1. Если вдруг необходимо сделать движения на основе Таблицы оборотов регистра накопления, то надо опредяться какие данные ресурсов нужны, и которым необходимо присвоить корректный синоним.

4. Можно заносить данные в документ порциями - первый раз в новый документ, затем в уже существующий. Но при этом условия в запросе надо будет менять, код занесения данных для довнесения данных в документ также изменить, а документ записывать после каждого занесения данных. Либо наоборот, в документ внести избыточные данные, а затем удалить из документа лишние строки.

5. Код внесения данных в документ заточен на конфигурацию Управление производственным предприятием. То есть - данные будут заноситься в документ "Корректировка записей регистров", который имеет следующие особенности:
- чтобы данные в документе были видны пользователю необходимо занести информацию о изменяемом регистре в табличную часть ТаблицаРегистровНакопления;
- данные сразу записываются в движения документа;
- частично данные обрабатываются самим документом при записи (в частности устанавливается период).

Для иных конфигураций требуется адаптировать код под эту конфигурацию.

6. Кстати, убедитесь, что документ, куда заносятся данные, является регистратором данного движения. :)

7. Возможно, в некоторых конфигурациях, при занесении данных в документ, надо будет часть данных прописывать в коде (например период) либо наоборот, в тексте запроса убрать некоторые поля (например регистратор).

8. Возможно, некоторые бухгалтеры потребуют, чтобы в документе был вид движения - приход. В этом случае в тексте запроса перед полями ресурсов надо будет поставить знак "минус".

В целом, подобное использование Консоли запросов можно использовать и для регистров сведений, и для регистров бухгалтерии. Но в этих случаях код занесения данных усложняется, особенно для регистров бухгалтерии (проводки надо прописывать).

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. kosmo0 94 31.10.18 10:00 Сейчас в теме
:) Прям какая-то мистика творится. Первоначально ИР были без ссылки. Попросили сделать ссылку. Сделал. В итоге ссылка не та которую прописывал.

А в целом ИР хороши для разовых проблем. Тех, которые возникают внезапно и больше не проявляются. Плюс можно данные перетаскивать из инструмента в инструмент. Например из консоли запроса в консоль кода, там данные изменил и тут же посмотрел таблицу значений (в плане что там получилось после изменения).
2. kosmo0 94 04.09.19 15:07 Сейчас в теме
Для регистров бухгалтерии ЗаполнитьЗначенияСвойств(НовСтр, ВыборкаЗапроса); не пройдет для субконто.

либо прописывать каждое субконто подобно

НовСтр.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ВыборкаЗапроса.СубконтоКт1


либо (по Дт и по Кт)

Для Каждого текСуб Из НовСтр.СчетКт.ВидыСубконто Цикл
    НовСтр.СубконтоКт[текСуб.ВидСубконто]=ВыборкаЗапроса["СубконтоКт"+текСуб.НомерСтроки];
КонецЦикла;
Оставьте свое сообщение

См. также

[СКД] Программное создание схемы компоновки данных

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    4486    John_d    18       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Агрегатные функции СКД, о которых мало кто знает

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    21014    ids79    45       

Три костыля. Сказ про фокусы в коде

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    13058    YPermitin    70       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

Выбирайте и голосуйте за самые интересные доклады, лучшие из них попадут в окончательную программу митапа. Голосование продлится до 30 января 2020 года.

Отслеживание выполнения фонового задания

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    16379    ids79    16       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    26977    ids79    34       

PgConf.Russia 2020. 3-5 февраля 2020 г. Москва. Промо

PGConf.Russia – международная техническая конференция по открытой СУБД PostgreSQL, ежегодно собирающая более 700 разработчиков, администраторов баз данных и IT-менеджеров для обмена опытом и профессионального общения. Для участников сообщества infostart.ru скидка 5% на участие в конференции.

от 12350 рублей

Фоновое выполнение кода в 1С - это просто

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019    16485    avalakh    21       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    22856    ids79    8       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    17347    ids79    27       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Регистры сведений. За кулисами

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    13462    YPermitin    12       

"Меньше копипаста!", или как Вася универсальную процедуру писал

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    11518    SeiOkami    49       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    28942    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    15898    dmurk    144       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.130.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

Регистры накопления. Структура хранения в базе данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    25043    YPermitin    27       

Выполнение внешней обработки в фоновом задании

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    15951    Eret1k    23       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 17 февраля по 13 марта 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Выгрузка документа по условию

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    8841    m-rv    2       

Как прикрутить ГУИД к регистру сведений

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    11836    m-rv    16       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

О расширениях замолвите слово...

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    21616    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    17496    ellavs    83       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500/9500 рублей

Трюки с внешними источниками данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    19100    YPermitin    53       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    22599    ids79    9