Как в 1с пронумеровать строки в
Все имеющиеся в 1С документы обязательно снабжаются специальными реквизитами - конкретнее, номером, временем и датой. Эти параметры гарантируют внутренние логику и порядок действия системы. Нумерация в системе автоматическая. Но может сбиваться, скажем, из-за неверных действий пользователей, меняющих номера "вручную". При отсутствии сторонних воздействий контроль за уникальностью номеров выполняется Нумератором документов.
Именно благодаря Нумератору нельзя создать документы с идентичными номерами. Когда документ сохраняется в журнале, то программа определяет ему следующий порядковый номер.
Ниже подробнее расписано, как действует Нумератор в виде объекта метаданных, определяющего порядок нумерации документов, в качестве примера приводится программа «1С:Бухгалтерия 3.0».
Документ, который мы хотим обработать, следует открыть в соответствующем варианте «Конфигуратор», далее через закладку «Нумерация» просмотреть нужные настройки. В частности, там есть галочка на автонумерацию, контроль для длины номера и уникальности и поле "Периодичность".
Каждую из установок следует изучить внимательнее.
Если установить галочку Автонумерации, то прямо при создании документ получит следующий по порядку номер. Номер останется уникальным в течение периода, отмеченного в соответствующем поле. Когда период обновится, то и нумеровка документов будет продолжаться по новой.
Показатель длины номера определяет, сколько может быть в символах эта максимальная длина.
Если стоит галочка на "контроле уникальности", то при сохранении документа программа будет согласно вышеописанному проверять номер на уникальность. Контроль выполняется в пределах периода из поля "Периодичность".
В поле "Периодичность" задаётся период, в течение которого номер гарантированно сохраняется уникальным. Обычно 1 год. Но можно задать четверть года, месяц или вообще один день. На практике результатом будет то, что при установке через месяц нумерация документов по прошествии месяца опять начнётся с первого номера.
Тип. Этой настройкой определяется, в каком виде формируется номер, т. е. в виде строки или числа. Скажем, если кроме цифры должны быть ещё разделяющие символы или буквы, отмечается "Строка".
Соответственно всем этим настройкам, когда документ сохраняется, то автоматически получает номер из 11 символов с временем проверки 1 год. Когда период обновится, то и нумерация тоже.
Главная функция нумератора - именно нумерование различных документов.
С его использованием можно пронумеровывать несколько их типов сразу. Это делается через дерево "Документы-Нумераторы".
Дабл-кликом мышки открывая "Нумератор", можно изучить на панели свойств характеристики. Такие же, как ранее рассматривались в свойствах нумерации документов.
Можно и создать собственный нумератор (через клавишу "Добавить" либо Ins) и назначить ему свойства.
После создания можно отметить новосозданный нумератор в настройках документа. Для тех документов, где он будет определён, будут применяться именно его свойства нумерации и в таких документах будет сквозная нумерация.
Например, так после выбора нумератора можно увидеть, что в свойствах документа параметры нумерации не задействованы.
Так, создав и отметив нумератор документов в свойствах, можно назначать различным группам документов различные способы их нумерации или, напротив, несколько разных видов документов нумеровать одинаково.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Для нумерации строк запроса необходимо воспользоваться встроенной функцией АВТОНОМЕРЗАПИСИ().
Её можно использовать только во временных таблицах. Более подробно можно посмотреть в справке. Всё просто. Ниже приведен небольшой пример:
Нужно выбрать все элементы справочника Тест и пронумеровать их. Создаем новое поле в запросе и забиваем в него функцию. Создаем временную таблицу и в последующей выборке получаем нужный результат.
В консоли запросов получился нужный нам результат
Специальные предложения
Вообще пронумеровать строки в запросе быстрее программно при его выводе. Данная функция облегчает жизнь при сложной обработке данных во временных таблицах. Теперь можно избавиться от сложных связей с ВТ. Еще стоит упомянуть что сия радость доступна с версии платформы 8.3.13.
toliman; user1039789; KRJ; Egovigor; Innuil; Созинов; Darklight; _7445_; sasha777666; Wilka; solary; mai_k; MsDjuice; SergeRSA; sulfur17; brr; marku; alex-l19041; + 18 – Ответить
(1)А как это сделать программно? Могли бы быстро набросить шаблон цикла, после вывода запроса в таблицу?
(45) Могу, но не буду так как алгоритм уровня уроков информатики старших классов средней школы. Если вы имеете в виду таблицу значений после "Выгрузить()", то надо добавить колонку с типом "Число" и, перебрав строки в цикле, проставить номера.
Фигня.
АВТОНОМЕРЗАПИСИ начинаеться не с 1, а с произвольного числа.
для АВТОНОМЕРЗАПИСИ гарантируеться только то, что следующее будет больше предыдущего. Не более
(9) сделайте в одном запросе несколько временных таблиц
Сделайте в одной транзакции несколько запросов.
просто ради прикола выполните несколько раз подряд запрос
результат бывает и такой
Артикул Номер Номер1
31 31
32 32
33 33
34 34
00000005691 35 35
36 36
37 37
00000006383 38 38
39 39
40 40
ВЫБРАТЬ ПЕРВЫЕ 10
Номенклатура.Артикул КАК Артикул,
АВТОНОМЕРЗАПИСИ() КАК Номер
ПОМЕСТИТЬ ТабАртикулы
ИЗ
Справочник.Номенклатура КАК Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ТабАртикулы.Артикул КАК Артикул,
АВТОНОМЕРЗАПИСИ() КАК Номер,
ТабАртикулы.Номер КАК Номер1
ПОМЕСТИТЬ ТабАртикулы2
ИЗ
ТабАртикулы КАК ТабАртикулы
;
Вы, конечно, не поверите, но ничего не меняется, выполняя ваш запрос N раз.
Допускаю, что при определенных условиях может возникать подобная ситуация, но я бы лучше перепроверил где-нибудь еще, чтобы исключить глюк системы.
Проверял на 8.3.13.1865
Вы, конечно, не поверите, но ничего не меняется, выполняя ваш запрос N раз.
Допускаю, что при определенных условиях может возникать подобная ситуация, но я бы лучше перепроверил где-нибудь еще, чтобы исключить глюк системы.
Функция предназначена для формирования поля с уникальным, последовательно возрастающим значением во временной таблице. Функцию можно использовать в том случае, если необходимо создать ключевое поле во временной таблице. Значение, сформированное этой функцией, будет уникально в пределах временной таблицы, при формировании которой использовалась функция. Начальное значение счетчика зависит от используемой СУБД и, в общем случае, может быть любым. Не гарантируется, что начальное значение счетчика будет равно 1 для любой временной таблицы.
Не поддерживается использование функции АВТОНОМЕРЗАПИСИ() в следующих случаях:
● в запросах, содержащих ОБЪЕДИНИТЬ на верхнем уровне,
● в запросах, которые не формируют временную таблицу,
● вне списка выборки,
● в выражениях языка запросов.
CratosX; echo77; KUAvanesov; dvissarov5; Cyberhawk; Mahon83; igee12; SergeRSA; aspirin4eg; sulfur17; Bassgood; + 11 – Ответить
(5)"АВТОНОМЕРЗАПИСИ() КАК ПорядковыйНомер"
.
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер
Все, что из запроса переносится в программный код, априори замедляет работу системы. Возможности языка запросов развивать надо, если ресурсы для этого имеются, а не рассказывать про необходимость "читаемости кода".
(6) Ни разу не априори. Надо от задачи и объемов данных смотреть. В некоторых ситуациях программная обработка избавляет от перевалки кучи данных по временным таблицам и от выполнения длиннющих и сложных запросов. Надо здравым смыслом пользоваться.
А в программном коде разве мы не те же данные/таблицы обрабатываем? Только средствами программного кода, а не языка запросов, из-за скудности последнего.
(8) Дело в том что из-за скудности языка запросов приходится гонять существенные объемы данных по временным таблицам и при этом всем строить весьма витиеватые запросы. В то время как при программной обработке можно обойтись меньшими выборками данных.
Мы с Вами говорим практически об одном и том же, акцентируя внимание на разные моменты. Вы абсолютно правы, что при нынешнем состоянии языка запросов программная обработка данных иногда предпочтительнее. Я лишь обращаю внимание на причину этой ситуации.
(12)Такое состояние дел вполне естественно, и никогда язык запросов не будет (и не должен) позволять обрабатывать данные настолько же гибко, как программная обработка.
Ну а про эффективность запросов к базе, скажу следующее: бывают ситуации, при который разбиение одного запроса на два и использование результатов одного запроса в качестве параметров второго значительно ускоряют работу. Сам был удивлён таким положением дел, но факт есть факт: планировщик запроса, даже такой умный, как MSSQL, не в состоянии сравниться по коэффициенту интеллекта с разработчиком, и имеет свои существенные ограничения.
Вот объясните мне для чего нужен этот автономерзаписи, когда есть индекс строки? Для просмотра в консоле запросов? Уже сколько времени прошло, когда его ввели, а я так ни разу и не придумал ему применение.
Автономер записи удобно использовать как несоставной первичный ключ во временных таблицах. Это сильно упрощает связи в запросах с временными таблицами и снижает нагрузку на СУБД.
(23) Вот-вот, помнится мне, как я парился, чтоб создать уникальный ключ строки во временной таблице. А с этой штукой прям не жизнь , а сказка :) Даже и пофиг, что не с 1 может начинаться
(26) соглашусь. Но вот если нужно, чтобы записи нумеровались не произвольным образом а в порядке сортировки каких-то полей. то только "индексировать по" неявным образом приведет к нужному результату?
(27)Вы ещё функцию вычисления хеш-ключа по набору полей пожелайте.
Ну и, до кучи - функцию генерации UUID.
Тут скорее полезность в том, что можно заранее вычислить временную таблицу с каким-то набором ключевых полей - и вот так в запросе её пронумеровать. А затем прилепить её к другим таблицам (по ключевым полям) и/или сделать из неё/них разные выборки (этот подход любят в типовом коде 1С) - а потом их соединять друг с другом - но уже не по ключевым полям - по вот такому полю-нумератору (мэппинг сложно-составного ключа к Числу - но надо делать заранее - и везде использовать готовый набор).
Конечно, прям вряд ли тут будет какой-то большой выигрыш в эффективности (производительности, нагрузки на память, легкочитаемости, хотя вот по модифицируемости - выигрыш может быть заметным), но для ряда очень сложных выборок, активно практикующих такие множественные соединения по одинаковым массивным ключам - может быть полезно!
Другое дело - что такая фишка открывает новые возможности, например с такой нумерацией гораздо проще написать алгоритмы устранения дублей, или сделать выборку, скажем, только чётных строк, или выбрать не только первые N, а наоборот, скажем, пропустить первые N записей, или выбрать, например из середины с M по N (правда с учётом, что нумерация может быть не с 0(1) а с произвольного числа такой код немного усложняется - но всё-таки не становится излишне запутанным!
Так же заметно упрощаются алгоритмы покадрового вычисления и вывода результатов запросов!
Вы ещё функцию вычисления хеш-ключа по набору полей пожелайте.
Ну и, до кучи - функцию генерации UUID.
хеш мне пока был без надоности.. а вот почему к ID записей объектных таблиц нельзя обращаться в запросах?
насчет сортировки.. когда я комментил у меня была задача, когда надо было интеллектуально сопоставить множество заказов с множеством бонусов для этих заказов. Условно говоря у меня было 2 временных таблицы (сложным образом полученных). Сопоставляю все возможные сочетания записей между ними: нужно получить одну таблицу, в которой результат лучшего мэтчинга (например по минимуму скоринговой функции, вычисляемой по значениям некоторых полей обеих таблиц). Автонумерация (в каждой из сопоставляемых таблиц) здорово помогает, когда скоринговая функция (как бы ее не мудрить) принимает одинаковые значения для разных мэтчингов - тогда можно сделать такое расщепление- при прочих равных кто-то будет предпочтен, благодаря включению в эту функцию автономера. Но вот если бы этот номер был в свою очередь проставлен не произвольно, а в нужном порядке это бы улучшило результат )
Полагаю диалект MSSQL (хотя более глубокое знание SQL у меня еще впереди ))
В любом случае запросом такие штуки сложновато решать, т.к. не учитываются сложности взаимодействия между записями: каждая запись одной таблы мэтчится с записями другой независимо - а ведь выбор одной из возможностей изменяет множество доступной для сопоставления оставшимся.. Т.е. по хорошему такой выбор не сделать (предполагаю) реляционной алгеброй. (ну пришлось там пост обработкой запроса дотачивать).
(31)Вашу задачу из вашего описания понять очень сложно. Как я написал выше, атонумерацию как ключ сопоставления можно эффективно использовать - если эти ключи-номера рассчитаны единожды во временной таблице - и эта временна таблица далее либо соединяется (по полным ключам) к другим таблицам, либо из уже делаются все остальные выборкии подвыборким, которые далее уже соединяются между собой. Вот именно все дальнейшие соединения уже можно сделать но нумерованному ключу, но генерировать его нужно только в одной верхней выборке!
(32) но если бы была возможность нумеровать не в произвольном порядке (ведь сейчас непредсказуемо какая запись получить меньший автономер а какая б о льший) то кроме уникальности записей появляется возможность их ранжировать (во временных таблицах), если такое ранжирование нужно. Кажется если сделать индексацию (по полям) то записи (в ВТ) будут пронумерованы в порядке этих индексов )
(33)Вот, честно, не могу понять, что за управляемую нумерацию Вы хотите. Автонумерация - это просто нумерация. Если Вы хотите управлять номером - конструкции "ВЫБОР", "ГДЕ", "ПЕРВЫЕ" и "УПОРЯДОЧИТЬ", а грегатные к Вашим услугам. Просто ранжирование - это применение некой функции-условия - вот её Вы должны написать сами. И не понимаю, как бы вы применяли "Автонумерацию", если бы она всегда начиналась с 0 (она и так автоупорялоченна согласно сортировки), кроме того что я уже выше написал - с единомоментной нумерацией, и а весь функционал дальше уже оформляется поствыборками!
(34) неважно с нуля или не с нуля - я о том, чтобы сначала выстроить записи в определенном порядке (во временной таблице) и потом их в этом же порядке пронумеровать.
неявным образом помогает индексировать.
(35)Я вас не понимаю. Автонумерация во одной временной таблице идёт от N до M (где M > N) - без пропусков, в строгом порядке сортировки - в чём затык?
(36)во временной таблице нет никакой сортировки. (в смысле оператор "упорядочить" отсутствует во временных таблицах.
Неявным образом применение индексирования упорядочивает записи (но это не гарантируется) и оператор Автономер - сработает _до_ индексирования. Т.е. нужно сначала ВТ индексировать, а потом в следующем запросе пакета из этой индексированной таблицы уже запросить и сделать автономер. (но опят же это все не гарантирует результат)
(37), Да "УПОРЯДОЧИТЬ ПО" нельзя применить во временной таблице без ключевого слова "ПЕРВЫЕ", но кто Вам мешает сделать вот так
Этот код у меня в базе (на MS SQL, PG, Oracle нет сейчас под рукой) отбирает только 10 записей - согласно условию отбора - и присваивает им номера от 1 до 10 согласно заданной сортировке по Коду
Бывают ситуации, когда необходимо добавить колонку с номером строки и вывести ее в результате выполнения запроса.
С помощью СКД, и построителя отчета, вывести номер строки не составляет никакого труда, в случае нумерации средствами самого запроса (оператор SELECT в SQL или ВЫБРАТЬ — в 1С), всё не так очевидно.
Для того чтобы вывести номер строки — необходимо набор данных соединить сам с собой используя любой вид соединения и любое из условий Таблицы1.Поле =Таблицы1.Поле, затем сгруппировать по и вывести полученный результат из первой и с помощью агрегатной функции КОЛИЧЕСТВО(*) — посчитать количество значений, которые и будут являться номером строки.
В качестве примера рассмотрим запрос после применения соединения с условием на >= (больше или равно), но без группировки и без подсчета.
Пример: Соединение таблицы без группировки.
В результате соединения получаем такой набор данных, и как уже можно догадаться, группировка по одному из полей «свернет» строки до одной, а агрегатная функция КОЛИЧЕСТВО(*) , посчитает количество одинаковых записей — что и будет являться номером строки. Направление сравнения на >= (больше или равно) или
Пример: Соединение таблиц с группировкой и подсчетом строк.
Как и предполагалось после группировки и использования агрегатной функции КОЛИЧЕСТВО(*) — получили номера строк.
Пример: Нумерация строк внутри группировки.
В данном примере для нумерации внутри группировки — в условие соединения, добавляется условие на совпадение значений по дополнительному группировочному полю — Таблица1.Профессия = Таблица2.Профессия
Пример: Сквозная нумерация при наличии других группировок.
Для того чтобы пронумеровать строки сквозной нумерацией всего набора данных в запросе который имеет несколько группировочных полей, необходимо поля по которым происходит соединение -превратить в уникальный набор значений.
Это можно сделать создав в условии соединения составное поле .
Таблица1.Имя + Таблица1.Профессия >= Таблица2.Имя + Таблица2.Профессия
ВАЖНО! Нумерация будет работать только по уникальным наборам значений для каждой строки.
Нумерация строк в запросе
В тестовой конфигурации в журнале документов необходимо реализовать нумерацию строк в динамическом списке. В журнал входит три документа: "Заявка", "Приходный ордер" и "Расходный ордер". Первоначально форма списка журнала документов выглядит следующим образом:
В принципе, задача легко бы решалась, если список документов мы бы получали в отчете. Но тут дела обстоят иначе.
В отчетах - не проблема!
Создав отчет на системе компоновки данных с получением списка документов, задача решалась бы очень просто. В поля отчета нужно было бы всего-навсего добавить специальное поле "Номер по порядку".
В результате пользователь увидит подобный результат формирования отчета:
Но как быть, если нумерацию нужно получить непосредственно в запросе? Например, это может понадобиться для получения порядкового номера записи в динамическом списке.
Нумерация в запросе
Изменим запрос динамического списка журнала документов следующим образом:
При открытии динамического списка в режиме 1С:Предприятия получаем следующий результат:
Примечание: в примере показан лишь принцип нумерации строк непосредственно в запросе. Если Вы обратили внимание, то на скриншоте выше документы в списке, отсортированные по порядковому номеру строки, "идут" в порядке типов (сначала приходные ордера, затем расходные и т.д.). Это происходит, потому что, используя ссылку для соединения, мы не можем гарантировать, что GUID'ы ссылок будут уникальными. Также нельзя сравнивать ссылки разных типов документов - это приведет к некорректному результату. Можно использовать момент времени или другие поля, определяющие конкретное положение документа с общем списке журнала.
Конечно, используя подобный подход мы усложнили бы запрос к базе данных, плюс ко всему, некоторые возможности динамического списка, важные для работы пользователей, стали бы не доступными (динамическое считывание данных, основная таблица и т.д.), но пример был создан лишь для демонстрации возможности нумерации строк в запросах. Используя этот принцип для решения других задач, например для печатных форм, подобных проблем не возникнет.
Нужно понимать, что использование повторного обращения к таблице документа или журнала документов может отрицательно повлиять на производительность. Оптимальным было бы создание временной таблицы всех выбираемых документов, а затем уже работать с ней. Опять же, все зависит от конкретной задачи!
Перед тем как перейти к перенумерации документов, разберем, как формируется номер документа.
В 1С предусмотрена сквозная нумерация документов в рамках одного вида. Каждый год она начинается заново. Рассмотрим ее формирование на примере документа Реализация (акт, накладная, УПД) . Номер присваивается независимо от Вида операции , Организации или других данных.
Для разграничения нумерации между организациями установите префикс. Подробнее Префикс в 1С
Номер документа закрепляется в момент его записи, т. е. документ может быть не проведен, удален, и номер уже не используется для других документов. Всегда берется максимальный использованный номер и к нему прибавляется один.
Символы и буквы в номере
Один из вариантов исправления данной ситуации — вручную изменить номер, убрав один ноль перед номером. Например, номер 0000-000В99 перенумеровать в 0000-001000.
Нумерация пойдет дальше автоматически
Префиксы — буквы в начале номера
В 1С есть префиксы — буквенные значения в начале номера. Их рекомендуется устанавливать, если есть обмен с другими базами или в базе несколько организаций. Подробнее про префиксы можно узнать из статьи Префикс в 1С.
Перенумерация документов в 1С 8.3 Бухгалтерия 3.0
В 1С перенумерацию документов может выполнить только пользователь с полными правами. Перед использованием любого способа перенумерации обязательно создайте копию базы!
Изменить нумерацию в 1С можно тремя способами:
- кассовые документы, счета-фактуры подразумевают автоматическую перенумерацию документов при выполнении экспресс-проверки ( Отчеты – Экспресс-проверка );
- перенумерация с помощью обработки Групповое изменение реквизитов ( Администрирование – Обслуживание – Корректировка данных – Групповое изменение реквизитов ), способ предполагает написание кода; (не рекомендуется).
Как изменить нумерацию в 1С 8.3 автоматически
При проверке учета можно автоматически перенумеровать документы:
- Приходный кассовый ордер — Поступление наличных ;
- Расходный кассовый ордер — Выдача наличных ;
- выписанный Счет-фактура — Счет-фактура выданный .
Метод используется, только если документы не отражены в отчетности — как самой организацией, так и контрагентом (например, по выданным счетам-фактурам). Иначе при сопоставлении данных документов произойдет несоответствие.
Для автоматической перенумерации перейдите в отчет Экспресс-проверка ведения учета в разделе Отчеты – Экспресс-проверка .
Перейдите в настройки отчета по кнопке Показать настройки и выберите необходимые проверки.
Как перенумеровать кассовые документы в 1С 8.3
Последовательность исправления нарушенной нумерации для РКО и ПКО одинакова.
Если не соблюдена нумерация, то при экспресс-проверке 1С выдаст ошибку:
Чтобы увидеть подробное описание ошибки, разверните отчет: в нем будут указаны предположительные ошибки в ведении учета, а также рекомендации по восстановлению нумерации.
Но не спешите нажимать на ссылку Автоматическая перенумерация документов . Сначала рекомендуем развернуть документы полностью и проанализировать, можно ли перенумеровать документы в 1С 8.3 или они уже отражены в отчетности.
Если принято решение восстановить хронологический порядок в номерах, сделайте копию базы, а потом нажмите на ссылку Автоматическая перенумерация документов .
- Текущий номер — номер документа до перенумерации;
- Новый номер — будущий номер документа в базе.
Если все верно, нажмите Продолжить .
После перенумерации выведется результат обработки.
Как перенумеровать счета-фактуры в 1С 8.3
Если не соблюдена нумерация, при экспресс-проверке 1С выдаст ошибку:
Чтобы увидеть подробное описание ошибки, разверните отчет: здесь будут указаны предположительные ошибки в ведении учета, а также рекомендации по восстановлению нумерации.
Не спешите нажимать на ссылку Автоматическая перенумерация документов . Сначала рекомендуем развернуть документы полностью и проанализировать, можно ли перенумеровать документы или они уже отражены в отчетности.
Если принято решение восстановить хронологический порядок в номерах, сделайте копию базы, а потом нажмите на ссылку Автоматическая перенумерация документов .
Для исправления номеров документов укажите Начальный номер . Изначально указан рекомендуемый номер, т. е. наименьший номер из исправляемых документов. Если каких-то номеров до него нет (документы были удалены), программа это не учитывает. Изменим Начальный номер на 1.
- Текущий номер — номер документа до перенумерации;
- Новый номер — будущий номер документа в базе.
Если все верно, нажмите Продолжить .
После перенумерации выведется результат обработки.
Прочие способы перенумерации
Ручная корректировка номера
Ручная корректировка номера не рекомендуется!
Перед ручной корректировкой номера ознакомьтесь с проблемами, которые могут возникнуть при использовании данного метода — Символы и буквы в номере.
Чтобы изменить номер вручную:
- установите курсор на номер;
- нажмите на кнопку del или delete на клавиатуре;
- согласитесь с редактированием;
- введите новый номер, обращая внимание на обязательное использование всех нулей вначале номера, например, 0000-0000000.
Групповое изменение реквизитов
Запустите обработку Групповое изменение реквизитов в разделе Администрирование — Обслуживание — Корректировка данных .
В обработке выберите вид документов, которые будут редактироваться. При необходимости отберите нужные документы по ссылке Все элементы. Подробнее о работе с обработкой.
Далее переведите переключатель на Выполнить произвольный алгоритм .
В большом поле заполните код, выделенный жирным шрифтом в блоке «Информация», который приведен ниже. Код можно скопировать или заполнить вручную. Кавычки обязательно перенаберите.
После каждой строки кода текст, выделенный «//», — это описание кода. Его можно не переносить, а если перенесете, не забудьте указать «//» в начале каждой строки.
Зеленым шрифтом выделены заменяемые данные под конкретный вид документов или справочников.
Если при выполнении обработки возникает ошибка об уникальности номера (номер занят), то рекомендуется сначала задать начальный номер, который не пересекается с имеющимися (1000000), а потом запустить еще раз обработку для первоначальной перенумерации уже с меньшего номера.
Как узнать техническое имя документа
Запустите конфигуратор по кнопке Конфигуратор .
Перейдите Конфигурация – Открыть конфигурацию .
После выполнения этой команды откроется окно Конфигурация . Может занять некоторое время.
Далее найдите в списках Справочники или Документы подходящий по смыслу элемент. Двойным щелчком мыши откройте его.
В открытой форме уточните, что это нужный элемент:
- Имя — техническое наименование документа;
- Синоним — имя документа в базе.
Перенумерация справочников в 1С 8.3
В 1С перенумерацию справочников может выполнить только пользователь с полными правами. Перед использованием любого способа перенумерации обязательно создайте копию базы!
Номер в справочниках хранится в поле Код.
Чтобы переименовать номер справочника, используйте либо ручную корректировку номера либо групповое изменение реквизитов. Но лучше изменять другое поле, например, Артикул , а поле Код оставить системным полем и не трогать его.
Выборка = Справочники.Номенклатура .Выбрать();
//Выбираем все элементы справочника из отобранных по стандартному отбору в обработке.
//в коде указываем техническое имя справочника.
Код = 1;
//Начальный код при перенумерации, без нулей и префиксов.
Пока Выборка.Следующий() Цикл
//Запускается цикл перебора всех найденных документов.
Спр = Выборка.ПолучитьОбъект();
//Получаем элемент справочника.
СтарыйКод = Спр.Код;
//Запоминаем старый код.
Спр.Код = « 00 -«+Формат(Код, «ЧЦ= 8 ; ЧВН=; ЧГ=0″);
// Устанавливаем новый код, 00 – Префикс базы, при необходимости заменить.
//ЧЦ-количество лидирующих нулей – количество символов после дефиса, для каждого справочника может быть свое число
// В комментарии указываем информацию об изменении кода.
Спр.Записать();
Код = Код+1;
//Переходим к следующему коду и элементу справочника
КонецЦикла;
См. также:
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С:Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
Часто в работе с 1С мы сталкиваемся с ситуацией, когда.У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.Современные технологии заявляют о себе в полную силу. В рамках.Реестр документов из 1С может понадобиться многим пользователям — от.
(2 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Изменения в 2022 году, о которых нужно знать бухгалтеру
6-НДФЛ за 1 квартал 2022 в 1С
Санкции и контрмеры: как работать организации и ее бухгалтеру в новой реальности. Часть 2
Учет малоценных ОС и запасов (ОСН)
Переход на ФСБУ 6/2020 «Основные средства» в 1С по альтернативному алгоритму
Добрый день. Отличный ресурс. Довольно часто пользовалась рубрикаторами и принимала участие в вебинарах. Для меня очень важным оказалось пояснение выполнения операций именно в конфигурации. А ещё сильная законодательная поддержка.
Читайте также: