Замена единиц измерения остатков
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В стандартной конфигурации, если в номенклатуре попытаться изменить единицу хранения остатков и по номенклатуре уже есть движения, программа ругается. Данная обработка предназначена для корректного изменения единицы хранения остатков.
Пример использования, при котором возникла необходимость написания обработки. У нас в базе некоторые позиции номенклатуры были заведены с ед. хран. ост "КМ". все шло хорошо, но пару лет спустя эту номенклатуру нужно было реализовать в количестве 3556,5 м или 3,5565 км. В стандартной конфе во всех регистрах у количества идет ограничение на точность до тысячных, следовательно 0,0005 км просто отбрасывается в таком случае.
Если не стоит галочка "Изменить единицу хранения остатков",то в базе ничего не меняется, а лишь сообщается что будет изменено.
Обработка ищет движения с данной номенклатурой по всем регистрам накопления, регистрам сведений, регистрам бухгалтерии. При этом важно, чтобы коэффициенты в единицах езмерения были проставлены правильно! После этого количество в движении изменяется по формуле: ТекущееКоличество*КоэффициентТекущейЕдИзмерения/КоэффициентНовойЕдИзмерения
Будьте внимательны при установке коэффициентов единиц измерения (напоминаю, что коэффициент-это количество текущей единицы измерения в базовойединице), это поможет избежать ошибок в базе и в этой обработке в частности. Обработку вначале лучше попробовать использовать на тестовой базе!
Обработка универсальна и может использоваться на любой конфигурации. Я использовал для УПП.
Если не сложно, поставьте мне +
upd:26.10.2012
1) Вместо замены по одной номенклатуре добавлена табличная часть, где можно указать список номенклатуры и обработать их массово, элементы номенклатуры можно добавить множественным подбором. Однако, массовая обработка может занять продолжительное время.

2)В обработке появилась возможность массово заполнить по текущей единице измерения остатков(например, всю номенклатуру, где ед. изм остатков "КМ"). Появилась возможность массово заполнить новую единицу измерения, при этом, если у номенклатуры отсутствует такая единица измерения пользователю предлагается ввести новую из обработки и ввести коэффициент "на лету".

3)Добавлены различные проверки на корректность данных. Если коэффициенты расставлены точно неправильно, программа выдает сообщения. Улучшен механиз вывода сообщений, можно выводить "Только важные сообщения", при этом не будет подробной детализации по каким регнистрам и регистраторам были изменения.
4)Пользоваться обработкой можно только с полными правами, при этом необходимо открыть период для пользователей с полными правами. Исправлены некоторые недочеты.
upd:28.01.2013
Исправлена ошибка при выполнении из конфигурации УТ 10.х
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Поиск данных Инструменты администратора БД Корректировка данных Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Решение для автоматической сверки данных между любыми конфигурациями 1С. Помогает контролировать и проверять обмены, проверять наличие документов при переносах данных, находить изменения в закрытых периодах
9760 руб.
14.11.2025 6263 28 8
Задачи пользователя Инструментарий разработчика Корректировка данных Закрытие периода Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)
Обработка предназначена для поиска, анализа и исправления отрицательных остатков во всех регистрах накопления информационной базы 1С.
6100 руб.
27.02.2026 3322 19 3
Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).
14640 руб.
29.04.2020 53050 146 164
Зарплата Корректировка данных Бухгалтер 1С 8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет НДФЛ Платные (руб)
Внешняя обработка сравнивает НДФЛ из расчетного листка и НДФЛ из регистра, на разницу формирует операцию учета НДФЛ. Исправляет расхождения, в том числе, когда Аванс больше Зарплаты Рассчитывает НДФЛ и сравнивает с исчисленным в программе. На отклонение формирует документ "Перерасчет НДФЛ"
9760 руб.
01.09.2023 10176 325 93
Корректировка данных Разработчик Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)
Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.3 от 24.06.2025!
26840 руб.
26.08.2018 57703 20 65
Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)
24400 руб.
27.10.2017 47915 33 15
Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)
Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.
6100 руб.
10.02.2017 122811 738 177
Корректировка данных Зарплата Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.
6100 руб.
09.02.2024 4582 15 6
есть такое сообщение:
Для номенклатуры Hama 47665 Mechanical Timer "Time Control III" ед. хр. ост. шт. участвует в следующих Движениях Регистра накопления--------------
то есть не пойму, поправили вы в (7) или нет... и что вы залили, собсно)
Если ИзменитьЕдиницуХрОст Тогда
СпрОбъект=Номенклатура.ПолучитьОбъект();
СпрОбъект.ЕдиницаХраненияОстатков=ЕдИзмХрОстИзмененная;
СпрОбъект.Записать();
Сообщить("Единица измерения полностью изменена!");
КонецЕсли;В типовых конфигурациях для Украины проверка на запись единицы измерения стоит в модуле объекта справочника Номенклатура. Поэтому приведенный выше код вызовет ошибку и не запишет номенклатуру.
Если Не Услуга И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки) Тогда
ТекстСообщения = "Единица """ + СокрЛП(Ссылка.ЕдиницаХраненияОстатков) + """ является единицей хранения остатков для """ + Наименование + """
|и уже участвует в товародвижении.
|Изменить эту единицу уже нельзя!";
ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ);
КонецЕсли;Поставьте хотя бы ОбменДанными.Загрузка = Истина при записи номенклатуры,чтобы не попадать на проверки в модуле объекта.
{Форма.Форма.Форма(147)}: Ошибка при вызове метода контекста (Выполнить)
Возврат Запрос.Выполнить().Выгрузить();
по причине:
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
Надо Упаковка Коэф=9
Базовая штуки.
Не дает поменять - "НЕВЕРНО указан новый или текущий коэффициент единицы измерения"
текущий 1 новый 9 что неверно???
В чем смысл обработки???
надо 1уп=9шт
Добавил единицу измерения упак. с коэфф. 9, в обработке выбрал новую ед изм. упак, нажимаю внизу в обработке "Изменить"
Выдает "НЕВЕРНО указан новый или текущий коэффициент единицы измерения"
Например так
Было 10 упакСтар к=1 * 90 руб
Стало 1 упакНов к=9 * 90 руб
Если (СпрЕдИзм.Коэффициент<>1 и СпрЕдИзм.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
Или (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)или
(СпрЕдИзм.Коэффициент=1 и СпрЕдИзм.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)
Или (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)Тогда
Сообщить("Строка "+Стр.НомерСтроки+"Для номенклатуры "+Стр.Номенклатура+" НЕВЕРНО указан новый или текущий коэффициент единицы измерения "+СпрЕдИзм+".Единица измерения не заполнена!",СтатусСообщения.ОченьВажное);
//МассивОшибок.Добавить(Стр.НомерСтроки);
Продолжить;
КонецЕсли;Подправил (добавил .Наименование):
Если (СпрЕдИзм.Коэффициент<>1 и СпрЕдИзм.ЕдиницаПоКлассификатору.Наименование=Стр.БазоваяЕдиницаИзмерения)
Или (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование=Стр.БазоваяЕдиницаИзмерения)или
(СпрЕдИзм.Коэффициент=1 и СпрЕдИзм.ЕдиницаПоКлассификатору.Наименование<>Стр.БазоваяЕдиницаИзмерения)
Или (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование<>Стр.БазоваяЕдиницаИзмерения)Тогда
Сообщить("Строка "+Стр.НомерСтроки+"Для номенклатуры "+Стр.Номенклатура+" НЕВЕРНО указан новый или текущий коэффициент единицы измерения "+СпрЕдИзм+".Единица измерения не заполнена!",СтатусСообщения.ОченьВажное);
//МассивОшибок.Добавить(Стр.НомерСтроки);
Продолжить;
КонецЕсли;И усе.
Или к примеру, если править регистр Заказы покупателей, то идет ли пересчет цен. Ведь если из тонны в кг переводим то и цена должна меняться. Изменение цен, конечно, не критично в этом регистре, но пользователи есть пользователи.
ЗЫ. Мне помогла обработка при переносе остатков - меняли единицы измерений хранения остатков.
В моем случае сам натворил такую картину: базовая единица - кг (коэф. 1,000), а единица хранения остатков - т (коэф. 1000,000). Расчет был благим: ввести позже единицу измерения шт., которым необходима точность в граммах. Но при оформлении типовой выгрузки из УТ10.3 в БП 2.0 вышло, что единицы хранения делятся на коэффициент и представляются в кг. В результате в УТ цены и количества во всех документах указаны в тоннах, а при перегрузке в бухгалтерию все переводится в килограммы (цены также меняются из руб./тн в руб./кг) - то есть весь бухучет плывет.
Хотел опробовать эту обработку, но новые единицы-коэффициенты только усложняют картину. Может быть, дадите совет по такой ситуации? Сейчас мечтаю просто получить все так, как было в старой базе: базовые единицы - т, единица хранения остатков - т (коэф. 1,000).
Если (Стр.КоэффициентНов<>1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
Или (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
//или
//(Стр.КоэффициентНов=1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)
//Или (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)Я закомментировал вторую проверку, т.к. непонятно зачем она нужна. Да и вообще мне не понятен смысл это проверки.
Автор, объясните пожалуйста, зачем?
Для Свободных остатков, во-первых надо заполнить ресурс "КоличествоСУчетомСерии", во-вторых ОбменДанными = Загрузка позволит избежать задвоения в этом регистре.
НайденнаяСтрока.Количество=НайденнаяСтрока.Количество*ЕдИзмХрОстНачальная.Коэффициент/ЕдИзмХрОстИзмененная.Коэффициент;
//{LRS 20131014 добавление
Если ЗаписиРегистра.Колонки.Найти("КоличествоСУчетомСерии") <> Неопределено тогда
НайденнаяСтрока.КоличествоСУчетомСерии = НайденнаяСтрока.Количество;
КонецЕсли;
//}
КонецЕсли;
КонецЦикла;
Если ИзменитьЕдиницуХрОст Тогда
НаборЗаписей.Загрузить(ЗаписиРегистра);
//{LRS 20131014 добавление
НаборЗаписей.ОбменДанными.Загрузка = Истина;
//}
НаборЗаписей.Записать();
ПоказатьТак же крайне желательно, чтобы не было мучительно больно, когда обработка вылетит на середине, обрамить обработку каждой единицы в конструкцию НачатьТранзакцию() - ЗафиксироватьТранзакцию().
а если просто указаная единица с неверным владельцем, н ос таким же коэффициентом (1:1) чтобы ее заменить, необязательно бегать по регистрам. можно просто перезаписать саму номенклатуру. но как быть с единицей указанной в документах? при проведении конечно будет использоваться новая единица хранения остатков, но и удалить старую нельзя - остануться ссылки в документах..
Или (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
//или
//(Стр.КоэффициентНов=1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)
//Или (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерен
(Справочник номенклатуры, справ. ед. из, классиф. ед изм, валюты и т.п )
получилась ситуация
Элемент номенклатуры
- базовая единица заполнена.
- Табличная часть (единиц измерения) заполнена.
НО ЕдиницаДляОтчетов -не выбрана
ЕдиницаХраненияОстатков - не выбрана
т.е. поъхоже ссылки на ед. из. утерены при конфертировании.
Задача проставить каждом элементе номенклатуры в соответствие
ЕдиницаДляОтчетов и ЕдиницаХраненияОстатков Базовую еденицу Измерения
Делаю так
Ссылка = Справочники.Номенклатура.НайтиПоКоду(" Код элемента");
Элемент = Ссылка.ПолучитьОбъект();
Запрос2 = Новый Запрос;
Запрос2.Текст = "ВЫБРАТЬ
| ЕдиницыИзмерения.Ссылка,
| ЕдиницыИзмерения.Владелец,
| ЕдиницыИзмерения.Код,
| ЕдиницыИзмерения.Наименование,
| КлассификаторЕдиницИзмерения.Ссылка КАК Ссылка1,
| КлассификаторЕдиницИзмерения.Код КАК Код1
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторЕдиницИзмерения КАК КлассификаторЕдиницИзмерения
| ПО ЕдиницыИзмерения.ЕдиницаПоКлассификатору = КлассификаторЕдиницИзмерения.Ссылка
|ГДЕ
| ЕдиницыИзмерения.Владелец = &Владелец
| И ЕдиницыИзмерения.ЕдиницаПоКлассификатору.Код = &ЕдиницаИзмПоКл";
Запрос2.УстановитьПараметр("Владелец",Справочники.Номенклатура.НайтиПоКоду(Ссылка.Код).Ссылка);
Запрос2.УстановитьПараметр("ЕдиницаИзмПоКл",Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(Элемент.БазоваяЕдиницаИзмерения.Код).Ссылка );
Результат2 = Запрос2.Выполнить();
ВыборкаЭЛ = Результат2.Выбрать();
Если ВыборкаЭЛ.Количество()=1 Тогда
Сообщить ("Правим этот элемент",СтатусСообщения.БезСтатуса);
Элемент.ЕдиницаДляОтчетов = ВыборкаЭЛ.ЕдиницыИзмерения.Ссылка;
Элемент.ЕдиницаХраненияОстатков = ВыборкаЭЛ.ЕдиницыИзмерения.Ссылка;
КонецЕсли;
Элемент.Записать();
Где я не прав?
Подскажите пожалуйста!!
Применялась при реальном проекте по "восстановлению" управленческого учета на УПП 1.3
Если будут любые вопросы - пишите, разумные идеи сам заинтересован реализовать в "типовом решении".
Позволяет сменить единицу учета номенклатуры, проверить и проставить правильные коэффициенты пересчета в уже проведенных документах движений по номенклатуре, позволяет избежать проблем с непроводящимися документами...
{Форма.Форма.Форма(180)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать();
по причине:
Запись не верна! Значение поля "Заказ покупателя" не может быть пустым! (Регистр накопления: Заказы покупателей; Номер строки: 1)
Последствий нет?
РАУЗ нормально работает после нее?
Вот думаю - то ли заморчиться, то ли проще будет новую номенклатуру завести
Посмотрите настройки единиц измерения. Написано, что проблема в коэффициенте. Возможно еще в записях регистра косяк. Лучше воспользуйтесь помощью программиста- он по отладчику поймет где собака зарыта. Это больше для разработчиков обработка
Рейтинг: 251
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 80479
Создание 20.01.11 12:52
Обновление 23.09.17 00:43
Просмотры 78071
Загрузки 302
Рейтинг
94
Комментарии 70
Код открыт Да
Рубрики Корректировка данных
Кому Для всех
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
