Грабли и бюджетирование ERP

26.11.25

Разработка - Механизмы типовых конфигураций

Это не учебник по бюджетированию, это краткий путеводитель по граблям, что я встретил, написанный по двум причинам - желанию пообщаться со знающими коллегами по способам преодоления граблей и нежеланию забыть, где они лежат. При выявлении новых граблей предполагаю дополнять сей труд. Не стесняйтесь делиться следами от граблей в комментариях. Отдельное спасибо фирме 1С за великолепный полигон.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Исправление ошибок, расширение
.cfe 53,86Kb
0 3 050 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Все ошибки и проблемы были выявлены на версии ERP 2.5.17.194. В последующих версиях этих проблем может уже и не быть.

 

Ошибка арифметического переполнения SQL.  Возникает при работе с действительно большими суммами: 

 

 

Как отследить и найти: Находите запрос, сохраняете его со всеми параметрами, потом урезаете пошагово запрос до того момента, пока ошибка не исчезнет.  Анализируете последнее на предмет возможной конвертации типа числа.

В нашем случае ошибка возникает в  модуле БюджетированиеСервер в процедуре ПересчитатьТаблицуДанныхВВалюту. В нашем случае ошибок несколько, но одни однотипные. Ошибка в строке запроса:  ТОГДА %2 * ЕСТЬNULL(КоэффициентыПересчетаИзФункциональнойВалюты.КоэффициентПересчета, 1)  где %2 подменяется, например на СуммаВФункциональнойВалюте.  Здесь происходит неявное преобразование типа. Из виртульной таблицы в запросе мы получаем  СуммаВФункциональнойВалюте, которой сервер SQL присвоил тип Numeric,  не смотря на то, что СуммаВФункциональнойВалюте едва в него умещалась.

Но вот результат перемножения этого числа  ЕСТЬNULL(КоэффициентыПересчетаИзФункциональнойВалюты.КоэффициентПересчета, 1)  уже нельзя преобразовать  к исходному типу, хотя, внимание , мы умножаем на единицу в нашем примере. На лицо явная ошибка SQL.  Исправить ошибку SQL мы не можем, но можем в запросе указать явно нужный итоговый тип числа. Итоговое решение:

	#Удаление
	|			ТОГДА %2 * ЕСТЬNULL(КоэффициентыПересчетаИзФункциональнойВалютыСтроки.КоэффициентПересчета, 1)
	#КонецУдаления
 	#Вставка
	|			ТОГДА ВЫРАЗИТЬ(%2 КАК ЧИСЛО (25,2)) * ЕСТЬNULL(КоэффициентыПересчетаИзФункциональнойВалютыСтроки.КоэффициентПересчета, 1)
	#КонецВставки

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

 

Проблемы с выгрузкой и загрузкой модели бюджетирования.

Первая проблем - огромный размер файла  и очень длительное время загрузки и выгрузки. 

Присмотревшись внутрь файла, вы можете увидеть там половину базы, включая склады, серии  и т.д. Дело в том, что выгрузка работает рекурсивно. Если у вас разрезы аналитики виды номенклатуры, то выгрузятся  все реквизиты видов номенклатуры, потом все реквизиты реквизитов в видах номенклатуры потом... Ну, принцип вы поняли. А если ничего из этого в приемнике не нужно? Там свои виды номенклатуры и т.д. Будем урезать осетра. В модуле ВыгрузкаЗагрузкаМоделейМеждународногоУчетаИБюджетирования  в процедуре ЗаписатьЗначениеПриНеобходимости исключим лишнее:

	ТекстПодзапроса = "ВЫБРАТЬ * ИЗ #Таблица КАК ТаблицаОбъекта_ ГДЕ Ссылка = &Ссылка";
	#Вставка
	// Нет необходимости выгружать подчиненые ревизиты
	Если ОбъектМД.ПолноеИмя()= "Справочник.ВидыНоменклатуры" Тогда  
		ТекстПодзапроса = "ВЫБРАТЬ Ссылка, Наименование ИЗ #Таблица КАК ТаблицаОбъекта_ ГДЕ Ссылка = &Ссылка";
	ИначеЕсли ОбъектМД.ПолноеИмя()= "Справочник.УпаковкиЕдиницыИзмерения" Тогда      
		Возврат; // не выгружаем
	КонецЕсли;
	#КонецВставки

   

Проблемы с модификацией объектов подсистемы

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

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

Ошибка при загрузке:
Возможно, структура загружаемых данных не соответствует конфигурации, проверьте актуальность файла данных
{ОбщийМодуль.ВыгрузкаЗагрузкаМоделейМеждународногоУчетаИБюджетирования.Модуль(255)}: Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.СтатьиРасходов Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.СтатьиРасходов:Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}НСИ_ГУИД Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType

 

Ошибка возникает в строке ЗаписанноеЗначение = Сериализатор.ПрочитатьXML(ЧтениеXML), где видно, что мы пытаемся прочитать объект, согласно модели, которая ничего не знает о новых общих реквизитах. Слава богу, что эти объекты выгружаются через брокер и их можно не выгружать через файл.

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

	ТекстПодзапроса = "ВЫБРАТЬ * ИЗ #Таблица КАК ТаблицаОбъекта_ ГДЕ Ссылка = &Ссылка";
	#Вставка
	// Нет необходимости выгружать подчиненые ревизиты
	Если ОбъектМД.ПолноеИмя()= "Справочник.ВидыНоменклатуры" Тогда  
		ТекстПодзапроса = "ВЫБРАТЬ Ссылка, Наименование ИЗ #Таблица КАК ТаблицаОбъекта_ ГДЕ Ссылка = &Ссылка";
	ИначеЕсли ОбъектМД.ПолноеИмя()= "Справочник.УпаковкиЕдиницыИзмерения" Тогда      
		Возврат; // не выгружаем
	ИначеЕсли ОбъектМД.ПолноеИмя()= "Справочник.НаправленияДеятельности" Тогда      
		Возврат; // не выгружаем
	ИначеЕсли ОбъектМД.ПолноеИмя()= "ПланВидовХарактеристик.СтатьиРасходов" Тогда      
		Возврат; // не выгружаем
	ИначеЕсли ОбъектМД.ПолноеИмя()= "ПланВидовХарактеристик.СтатьиДоходов" Тогда      
		Возврат; // не выгружаем
	ИначеЕсли ОбъектМД.ПолноеИмя()= "Справочник.СтатьиДвиженияДенежныхСредств" Тогда      
		Возврат; // не выгружаем
	КонецЕсли;
	#КонецВставки

 

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

 

Внимание НДС 22% в 2026:

Общую ставку налога на добавленную стоимость (НДС) решено увеличить с 20 до 22%. Повышение налога планируется с 1 января 2026 года.

Добавление ставок НДС 2025, 2026 - 22%, 5% и 7% - в старую ERP 2.4, 2.5, УТ 11.4, 11.5, КА 2.4, 2.5

 

Другие разработки автора:

Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Электронный обходной лист (расширение) для ERP, ЗУП, КА
Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)
Excel Studio for 1CExcel Studio for 1C
Настраиваемый управленческий балансНастраиваемый управленческий баланс
Динамические отчеты СКД
Динамические отчеты СКД
Фоновая отправка уведомлений
Генератор кодаГенератор кода

 

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.17.194

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Сканер штрих-кода Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

24000 руб.

19.04.2021    27938    64    56    

77

Производство готовой продукции (работ, услуг) Рабочее место Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бухгалтерский учет Управленческий учет Платные (руб)

Расширение "Входной контроль" в 1С:ERP, КА 2.5, УТ11.5 и предназначено для удобства отражения операций входного контроля и их результатов в учетной системе, а также фотофиксации брака.

18000 руб.

02.02.2019    39651    46    22    

45

Кадровый учет Печатные формы Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

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

9600 руб.

11.01.2022    16447    4    6    

10

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    3786    user1988284    0    

18

Механизмы типовых конфигураций Программист 1С:Предприятие 8 Бесплатно (free)

Каждый, кто работал с кадровыми отчетами в ЗУП, ERP или УХ, сталкивался с механизмом представлений – странным кодом запроса, где поля отображаются пустыми ссылками, а в названии временной таблицы есть слово «Представление». В статье разберем, что такое представления и как ими пользоваться. Больше не нужно ломать голову над тем, откуда и как правильно получать данные. Механизм представлений сделает это за вас.

08.07.2025    8926    user2012581    55    

57

Механизмы типовых конфигураций Программист Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бесплатно (free)

В типовых решениях типа УТ, КА, ERP при вводе строк в поля ввода осуществляется поиск по первым символам. С помощью небольшой доработки (делается через расширение) можно организовать поиск по вхождению.

02.06.2025    2043    lkey    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1931 19.11.25 09:52 Сейчас в теме
В лого изображен светлый конец пути. Я думаю, весеннее колхозное поле и пару торчащих задниц с лопатами и граблями будет еще лучше. Каждый год надо полоть и убирать поле, каждый год новые грабли...
2. milkers 3012 19.11.25 19:21 Сейчас в теме
(2) Не все так мрачно, у нас хороший аналитик, с ним внедрение идет очень быстро и почти без проблем. Конечно, проблем хватает, но это рутина и не занимает много времени.
Для отправки сообщения требуется регистрация/авторизация