Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5

Организация сквозной нумерации

25.08.2017, 08:51. Показов 7395. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, ребята. Интересует такой вопрос. Нет ли каких-либо штатных инструментов по организации сквозной нумерации ? Я не имею ввиду нумераторы. Требуется наряду с типовым номером вести дополнительную сквозную нумерацию. Т.е. сейчас дело обстоит вот как. Есть номер объекта, он соответственно с префиксом (несколько организаций), как организовать еще дополнительную сквозную нумерацию (по всем организациям). Не хочется изобретать велосипед с проверкой кода, транзакциями и т.п. Вот, хотелось бы узнать, наверняка есть штатные средсва (типа, установить новый номер или т.п.)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2017, 08:51
Ответы с готовыми решениями:

Макрос для очистки колонтитулов и установки сквозной нумерации в документе
Всем доброго времени суток! Проблема у меня следующая: часто приходится форматировать большие документы (300-600 стр), и каждые 10 -...

Как добавить в шаблон с рамками и штампами окошко для сквозной нумерации в верхнем правом углу?
Здравствуйте, нужно оформить диплом, нашел шаблон с хорошими рамками, все прекрасно, но еще в каждой рамке должно быть окошко с нумерацией...

Организация нумерации номеров заказов
Добрый день! На данный момент на производстве есть система нумерации заказов, она выглядит таким образом: Допустим заказчик делает заказ...

8
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
25.08.2017, 11:12
Цитата Сообщение от Почтальон Посмотреть сообщение
Вот, хотелось бы узнать, наверняка есть штатные средсва (типа, установить новый номер или т.п.)
Да, но все это работает со стандартными реквизитами Номер, Код.
Цитата Сообщение от Почтальон Посмотреть сообщение
Не хочется изобретать велосипед с проверкой кода, транзакциями и т.п.
Думаю, придется.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
25.08.2017, 13:19  [ТС]
А если добавить свой нумератор и использовать реквизит с таким типом ? прокатит ?
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
25.08.2017, 14:23
Не вижу, как это можно добиться.
Во-первых, нумератор можно подвязать только к документам, во-вторых он влияет только на стандартный реквизит Номер.
1
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,295
25.08.2017, 16:21
Почтальон, В принципе "костыль" придумать можно. Создать реквизит , например, "Доп номер" с типом число, но в КАЖДОМ документе и вывести его на формы документов. Создать регистр сведений "Сквозная нумерация", куда записывать каждый номер и брать данные при создании документа. В принципе работать будет, но стоит ли тратить столько сил и средств ради довольно сомнительной затеи
1
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
26.08.2017, 14:35  [ТС]
Ну да, по всей видимости придется делать РС, и в транзакции записывать новые номера
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
07.09.2017, 11:35  [ТС]
Возвращаюсь к вопросу об организации сквозной нумерации. Ребята, проясните пожалуйста моменты, что-то никак не могу понять, в какой момент снимается блокировка ?
Вот какие у меня мысли. Чтение и запись данных должна проходить в одной транзакции, чтобы не дай бог кто-нибудь вклинился, причем все это должно быть в пределах года. Т.е. как я это понимаю.

НачалоТранзакции
НачалоБлокировки
ПрочитатьДанные с РС, получить последний текущий номер
ЗаписатьДанные в РС, устанавливаем новый номер (увеличенный на 1 на предыдущем шаге)
КонецБлокировки
КонецТранзакции

Вот что есть у меня сейчас
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//устанавливаем блокировку на всю таблицу в пределах года,
//т.к. сквозная номерация должна быть в пределах года
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "МойРегистрСведений";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Диапазон = Новый Диапазон(НачалоГода(ТекущаяДата()), КонецДня(ТекущаяДата()));
ЭлементБлокировки.УстановитьЗначение("Период", Диапазон);
 
//читаем данные из РС
//получаем текущий последний номер и устанавливаем новый номер
//записываем данные в РС с уже новым номером
 
Блокировка.Заблокировать();
Правильно ли я делаю? Вопрос у меня такой, когда блокировка снимется ? Или в какой момент нужно ставить Заблокировать() ?
0
212 / 185 / 32
Регистрация: 24.10.2011
Сообщений: 762
07.09.2017, 12:50
Вообще по логике все правильно, сначала начали транзакцию, что бы в случае "падения" транзакция откатила блокировку, логика соблюдена, что вас настораживает?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
07.09.2017, 14:38  [ТС]
Лучший ответ Сообщение было отмечено Почтальон как решение

Решение

Volexovich, меня настораживает тот момент, в какой момент блокировка устанавливается и снимается.
Т.е. я понимаю что функция Заблокировать() как раз и устанавливает блокировку, и ее размещение в коде очень важный момент. По сути, мне в одной транзакции нужно установить блокировку на чтение и запись от других сеансов.

Добавлено через 4 минуты
Т.е. у меня на данный момент вот что:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
        НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
    ПоследнийНомер = 0;
    ТекущийНомер = 0;
    
    //устанавливаем блокировку на всю таблицу в пределах года,
    //т.к. сквозная номерация должна быть в пределах года
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить();
    ЭлементБлокировки.Область = "МойРегистр";
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    Диапазон = Новый Диапазон(НачалоГода(ТекущаяДата()), КонецДня(ТекущаяДата()));
    ЭлементБлокировки.УстановитьЗначение("Период", Диапазон);
    
    //получим текущий сквозной номер
    ///запрос не стал показывать
    Если ВыборкаДетальныеЗаписи.Количество() <> 0 Тогда
        ВыборкаДетальныеЗаписи.Следующий();
        //получаем текущий номер
        ТекущийНомер = ВыборкаДетальныеЗаписи.СквознойНомер;
        //и увеличиваем его на 1
        ПоследнийНомер = ТекущийНомер + 1;
    Иначе
        ПоследнийНомер = ТекущийНомер + 1;
    КонецЕсли;
    
    //записываем номер
    МенеджерЗаписи = МойРегистр.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Период = ТекущаяДата();
    МенеджерЗаписи.Документ = СсылкаНаДокумент;
    МенеджерЗаписи.СквознойНомер = ПоследнийНомер;
    МенеджерЗаписи.Записать();
    
    Блокировка.Заблокировать();
    
    ЗафиксироватьТранзакцию();
Вот, как-то так. Т.е. в транзации происходит чтение, а потом запись данных.

Добавлено через 49 минут
Цитата Сообщение от Volexovich Посмотреть сообщение
Вообще по логике все правильно, сначала начали транзакцию, что бы в случае "падения" транзакция откатила блокировку, логика соблюдена, что вас настораживает?
Ну, как и следовало ожидать. При таком раскладе, который в предыдущем сообщении - в один момент создались два одинаковых номера. Перенес Блокировка.Заблокировать(); чуть выше по коду (в строку 13) - все, вроде бы получилось , в один и тот же момент времени - два разных номера
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2017, 14:38
Помогаю со студенческими работами здесь

Найти сумму элементов на пересечении строк четной нумерации и столбцов нечетной нумерации в двумерном массиве
Здравствуйте. Помогите,пожалуйста,найти сумму элементов на пересечении строк четной нумерации и столбцов нечетной нумерации матрицы A() ...

Сквозной ток.
Что такое сквозной ток?

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

Сквозной XSL count()
Добрый день! Есть вот такое преобразование &lt;xsl:for-each select=&quot;/collection/cd&quot;&gt; &lt;xsl:if test=&quot;genre/@name='jazz'&quot;&gt;...

Сквозной генератор GEN_ID
Добрый день. Изучаю по-тихоньку FB. У меня такой вопрос по теории БД: что мне мешает использовать один генератор значений первичного ключа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru