|
Пропуски номеров | ☑ | ||
---|---|---|---|---|
0
Dimon1C
02.02.16
✎
08:45
|
Добрый день, использую разные префиксы для документа Реализация, в зависимости от галки Отражать в бух учете. Так как пользователи бывает сначала галку поставят, а потом уберут, то происходят пропуски номеров.
Например: 1. Пользователь установил галку Отражать в бух учете, номер присвоился Б000001. 2. Пользователи ошибся и убрал галку Отражать в бух учете, номер присвоился У000001. 3. Новая Реализация (с галкой Бух) уже будет иметь номер Б000002. Получается пропустили номер Б000001. Что можете посоветовать? |
|||
1
Рэйв
02.02.16
✎
08:48
|
дурацкая идея с префиксами если они могут туда сюда галку гонять. Сделай колонку для признака БУ и пусть радуются
|
|||
2
Dimon1C
02.02.16
✎
08:56
|
(1) Не понял про колонку...
|
|||
3
zak555
02.02.16
✎
08:57
|
что за конфигурация ?
|
|||
4
Dimon1C
02.02.16
✎
09:07
|
КА 1.1
|
|||
5
zak555
02.02.16
✎
09:09
|
а не проще чурнуху на отдельной "организации" держать ?
|
|||
6
Dimon1C
02.02.16
✎
09:33
|
(5) Так руководству удобней, уже ведем как есть.
Получается вариант только один, свою нумерацию колбасить, искать пропуски программно? |
|||
7
vde69
02.02.16
✎
09:38
|
зачем нужна сквозная нумерация???
и что делать если нужно сделать документы задним числом??? я себе сделал авто пропуск 5 номеров каждый день, при смене даты программа размещается в этом пропуске |
|||
8
zak555
02.02.16
✎
09:40
|
(6) в смысле удобнее ?
какой смысл колбасить конфигурацию, если можно всё решить простым выделением чернухи на "отдельный баланс" ? |
|||
9
vde69
02.02.16
✎
09:40
|
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ЭтоНовый() и (НачалоДня(ТекущаяДата()) = НачалоДня(Дата)) Тогда Номер = ПолныеПрава.ПолучитьНовыйНомерДокумента ("СчетНаОплату", ПИ.ТекущийПользователь(), 10); ИначеЕсли (Дата <> Ссылка.Дата) Тогда Режим = РежимДиалогаВопрос.ОКОтмена; Ответ = Вопрос("Изменена дата счета, попробовать изменить номер?", Режим, 0); Если Не Ответ = КодВозвратаДиалога.ОК Тогда Если Не ПараметрыСеанса.ЭтоАдминистраторБазы Тогда Отказ = Истина; КонецЕсли; Возврат; КонецЕсли; Если (НачалоДня(ТекущаяДата()) = НачалоДня(Дата)) Тогда Номер = ПолныеПрава.ПолучитьНовыйНомерДокумента ("СчетНаОплату", ПИ.ТекущийПользователь(), 10); Иначе Номер = ПолныеПрава.НайтиНомерДокументаВСквознойНумерации ("СчетНаОплату", ПИ.ТекущийПользователь(), Дата); КонецЕсли; Если не ЗначениеЗаполнено(Номер) Тогда Предупреждение("Не удалось установить номер документа"); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; КонецПроцедуры; //------------------------------------- Функция ПолучитьНовыйНомерДокумента (ИмяТаблицы, Ответственный, ИнкрементНовогоДня = 1) Экспорт Запрос = Новый Запрос ( "ВЫБРАТЬ ПЕРВЫЕ 1 | СчетНаОплату.Номер |ПОМЕСТИТЬ ПоследнийНомер |ИЗ | Документ."+ИмяТаблицы+" КАК СчетНаОплату |ГДЕ | ГОД(СчетНаОплату.Дата) = &Год | |УПОРЯДОЧИТЬ ПО | СчетНаОплату.Номер УБЫВ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ ПЕРВЫЕ 1 | СчетНаОплату.Ссылка |ПОМЕСТИТЬ ТекущиеСчета |ИЗ | Документ."+ИмяТаблицы+" КАК СчетНаОплату |ГДЕ | СчетНаОплату.Дата >= &Дата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПоследнийНомер.Номер, | ВЫБОР | КОГДА ТекущиеСчета.Ссылка ЕСТЬ NULL | ТОГДА "+ИнкрементНовогоДня+" | ИНАЧЕ 1 | КОНЕЦ КАК Инкремент, | ТекущиеСчета.Ссылка |ИЗ | ПоследнийНомер КАК ПоследнийНомер | ПОЛНОЕ СОЕДИНЕНИЕ ТекущиеСчета КАК ТекущиеСчета | ПО (ИСТИНА)"); Запрос.УстановитьПараметр("Дата", НачалоДня(ТекущаяДата())); Запрос.УстановитьПараметр("Год", Год(ТекущаяДата())); мНомер = "00000000000"; мИнкр = 1; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл мНомер = Выборка.Номер; мИнкр = Выборка.Инкремент; КонецЦикла; НовыйНомер = ""; д = СтрДлина(мНомер); Для е = 1 по д Цикл мКод = КодСимвола(мНомер, е); Если (мКод >= 48) и (мКод <= 57) Тогда НовыйНомер = НовыйНомер + Символ(мКод); Иначе Прервать; КонецЕсли; КонецЦикла; НовыйНомер = Число(НовыйНомер) + мИнкр; НовыйНомер = Формат(НовыйНомер, "ЧГ=0"); НовыйНомер = Прав("00000000000000" + НовыйНомер + СокрЛП(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Ответственный, "Нумератор")), 12); Возврат НовыйНомер; КонецФункции |
|||
10
Dimon1C
02.02.16
✎
10:12
|
(8) Как минимум остатки полетят у этой организации, так как используется один склад.
|
|||
11
zak555
02.02.16
✎
10:15
|
(10) склад единый, без разделния по юрикам
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |