|
v7: Сбой нумерации во вкладке операции | ☑ | ||
---|---|---|---|---|
0
Ihor
29.06.20
✎
18:24
|
Добрый день. Сбилась нумерация, доходит до 99 и далее начинается с 10, куда копать?
скрин https://prnt.sc/t8kabs Перем Новый; Перем НачальнаяДатаДокумента; Процедура ПолучитьСправку() Мн=СоздатьОбъект("СписокЗначений"); Если ПроводкаВыбрана()=0 Тогда Возврат; КонецЕсли; Если Дебет.Счет.Выбран()=1 Тогда Мн.ДобавитьЗначение(Дебет.Счет); КонецЕсли; Если Кредит.Счет.Выбран()=1 Тогда Мн.ДобавитьЗначение(Кредит.Счет); КонецЕсли; Сч=""; Если Мн.ВыбратьЗначение(Сч,,,,1) = 1 Тогда Норм_ПолучитьСправку("_&"+Сч.Код); КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Процедура ПриВыбореСубконто() Если Сред(Форма.АктивныйЭлемент(), 9, 2) = "Дт" Тогда Корреспонденция = Дебет; Иначе Корреспонденция = Кредит; КонецЕсли; НомерСубконто = Число(Прав(Форма.АктивныйЭлемент(), 1)); Если Корреспонденция.Счет.ВидСубконто(НомерСубконто) = ВидыСубконто.Контрагенты Тогда Если Корреспонденция.Счет.КоличествоСубконто() > НомерСубконто Тогда Если Корреспонденция.Счет.ВидСубконто(НомерСубконто + 1) = ВидыСубконто.Договоры Тогда Если Корреспонденция.Субконто(НомерСубконто + 1).Владелец <> Корреспонденция.Субконто(НомерСубконто) Тогда Корреспонденция.Субконто(НомерСубконто + 1, Корреспонденция.Субконто(НомерСубконто).ОсновнойДоговор); КонецЕсли; ИначеЕсли (Корреспонденция.Счет.ВидСубконто(НомерСубконто + 1) = ВидыСубконто.СчетаФактурыПолученные) или (Корреспонденция.Счет.ВидСубконто(НомерСубконто + 1) = ВидыСубконто.СчетаФактурыВыданные) Тогда Если Корреспонденция.Субконто(НомерСубконто).Выбран() = 0 Тогда Корреспонденция.Субконто(НомерСубконто + 1, ""); ИначеЕсли Корреспонденция.Субконто(НомерСубконто + 1).Выбран() = 1 Тогда Если Корреспонденция.Субконто(НомерСубконто + 1).Контрагент <> Корреспонденция.Субконто(НомерСубконто) Тогда Корреспонденция.Субконто(НомерСубконто + 1, ""); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; ИначеЕсли Корреспонденция.Счет.ВидСубконто(НомерСубконто) = ВидыСубконто.Договоры Тогда Если НомерСубконто > 1 Тогда Если Корреспонденция.Счет.ВидСубконто(НомерСубконто - 1) = ВидыСубконто.Контрагенты Тогда Если (Корреспонденция.Субконто(НомерСубконто).Выбран() = 1) и (Корреспонденция.Субконто(НомерСубконто).Владелец <> Корреспонденция.Субконто(НомерСубконто - 1)) Тогда Корреспонденция.Субконто(НомерСубконто - 1, Корреспонденция.Субконто(НомерСубконто).Владелец); КонецЕсли; КонецЕсли; КонецЕсли; //ИначеЕсли (Корреспонденция.Счет.ВидСубконто(НомерСубконто) = ВидыСубконто.СчетаФактурыПолученные) //или (Корреспонденция.Счет.ВидСубконто(НомерСубконто) = ВидыСубконто.СчетаФактурыВыданные) Тогда // Если НомерСубконто > 1 Тогда // Если Корреспонденция.Счет.ВидСубконто(НомерСубконто - 1) = ВидыСубконто.Контрагенты Тогда // Если Метаданные.Документ(Корреспонденция.Субконто(НомерСубконто).Вид()).РеквизитШапки("Контрагент").Выбран() = 1 Тогда // Если Корреспонденция.Субконто(НомерСубконто).Выбран() = 1 Тогда // Если Корреспонденция.Субконто(НомерСубконто).Контрагент <> Корреспонденция.Субконто(НомерСубконто - 1) Тогда // Корреспонденция.Субконто(НомерСубконто - 1, Корреспонденция.Субконто(НомерСубконто).Контрагент); // КонецЕсли; // КонецЕсли; // КонецЕсли; // КонецЕсли; // КонецЕсли; КонецЕсли; КонецПроцедуры //ПриВыбореСубконто //_____________________________________________________________________________ Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр) Если Лев(ИдентЭлемДиалога, 8) = "Субконто" Тогда Если Сред(ИдентЭлемДиалога, 9, 2) = "Дт" Тогда Корреспонденция = Дебет; Иначе Корреспонденция = Кредит; КонецЕсли; НомерСубконто = Число(Прав(ИдентЭлемДиалога, 1)); ВидСубконто = Корреспонденция.Счет.ВидСубконто(НомерСубконто).Идентификатор(); Если Найти(",СчетаФактурыВыданные,СчетаФактурыПолученные,", ","+ВидСубконто+",") > 0 Тогда Если НомерСубконто > 1 Тогда Если Корреспонденция.Счет.ВидСубконто(НомерСубконто - 1) = ВидыСубконто.Контрагенты Тогда ФлагСтандОбр = 0; Параметр = Корреспонденция.Субконто(НомерСубконто - 1); ОткрытьФорму("Журнал."+ВидСубконто, Параметр); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Процедура ВводНового(Копирование, ОбъектКопирования) //предопределенная Новый = 1; Если Копирование = 1 Тогда Документ.Комментарий = ОбъектКопирования.Комментарий; Иначе ТиповаяОперация = ""; Если ПоТиповойОперации(ТиповаяОперация) = 1 Тогда Документ.Комментарий = "Введена на основании типовой операции """ + ТиповаяОперация+""""; СписокТиповыхОпераций = СоздатьОбъект("СписокЗначений"); ВосстановитьЗначение("СписокТиповыхОпераций", СписокТиповыхОпераций); Позиция = СписокТиповыхОпераций.НайтиЗначение(ТиповаяОперация); Если Позиция > 0 Тогда СписокТиповыхОпераций.УдалитьЗначение(Позиция); КонецЕсли; СписокТиповыхОпераций.ВставитьЗначение(1, ТиповаяОперация); ПоследняяПозиция = 30; Если СписокТиповыхОпераций.РазмерСписка() > ПоследняяПозиция Тогда СписокТиповыхОпераций.УдалитьЗначение(ПоследняяПозиция+1, СписокТиповыхОпераций.РазмерСписка()-ПоследняяПозиция); КонецЕсли; СохранитьЗначение("СписокТиповыхОпераций", СписокТиповыхОпераций); КонецЕсли; КонецЕсли; КонецПроцедуры //ВводНового //_____________________________________________________________________________ Процедура ПриОткрытии() Если Выбрана() = 1 Тогда Если (ДатаОперации <= Константа.ДатаЗапретаРедактирования) и (Форма.ТолькоПросмотр() = 0) Тогда Форма.ТолькоПросмотр(1); Предупреждение("Разрешен только просмотр операции!", 4); КонецЕсли; КонецЕсли; Если Форма.ТолькоПросмотр() = 1 Тогда Форма.КнопкаОК.Доступность(0); Форма.КнопкаЗаписать.Доступность(0); КонецЕсли; ИспользоватьВалюту(глЗначениеПоУмолчанию("ОсновнаяВалюта")); ИспользоватьСубконто("МестаХранения", глЗначениеПоУмолчанию("ОсновнойСклад")); ИспользоватьСубконто("БанковскиеСчета", глЗначениеПоУмолчанию("ОсновнойБанковскийСчет")); //ИспользоватьСубконто("Подразделения", глЗначениеПоУмолчанию("ОсновноеПодразделение")); //ИспользоватьСубконто("ВариантыРеализации", глЗначениеПоУмолчанию("ОсновнойВариантРеализации")); //ИспользоватьСубконто("ВидыДеятельности", глЗначениеПоУмолчанию("ОсновнойВидДеятельности")); Форма.Кн_Справка.Видимость( ?(ТипЗначения(Норм_Компонента)=0,0,1 )); Форма.Кн_Видеокурс.Видимость( ?(ТипЗначения(Видео_Компонента)=0,0,1 )); КомментарийОперации = Документ.Комментарий; НачальнаяДатаДокумента = ДатаОперации; КонецПроцедуры Процедура ПриЗаписи() Если ДатаОперации <= Константа.ДатаЗапретаРедактирования Тогда Предупреждение("Нельзя записывать операции с датой, более ранней, чем дата запрета редактирования документов!"); СтатусВозврата(0); КонецЕсли; //Контроль даты операции Если Документ.Вид() = "Операция" Тогда РазностьДат = НачГода(НачальнаяДатаДокумента)-НачГода(ДатаОперации); Если РазностьДат <> 0 Тогда Дубликат = СоздатьОбъект("Документ.Операция"); Дубликат.Новый(); Дубликат.НомерДок = Документ.НомерДок; Дубликат.ДатаДок = ДатаОперации; Дубликат.УстановитьНовыйНомер(""); Если ( Дубликат.НомерДок <> Документ.НомерДок ) Тогда НовыйНомерДок = Дубликат.НомерДок; Если Дубликат.НайтиПоНомеру(Дубликат.НомерДок,Дубликат.ДатаДок)=0 Тогда Если Вопрос( "Для документов вида ""Операция"" каждый год нумерация начинается заново."+РазделительСтрок+ "Присвоить новый номер?","Да+Нет") = "Да" Тогда Документ.НомерДок = НовыйНомерДок; СтатусВозврата(0); КонецЕсли; КонецЕсли; КонецЕсли; НачальнаяДатаДокумента = ДатаОперации; Активизировать("НомерДок"); КонецЕсли; КонецЕсли; Документ.Комментарий = КомментарийОперации; КонецПроцедуры //****************************************************************************** // Предопределенная процедура // Процедура ПриЗакрытии() глОткрытьЖурнал(Документ, Новый); КонецПроцедуры // ПриЗакрытии() |
|||
1
Злопчинский
29.06.20
✎
18:33
|
перенумеровать штатными инструментами с наличием ведущих нулей.
далее отрубить всем руки по локоть кто лазит в нумерацию руками. |
|||
2
victuan1
30.06.20
✎
04:44
|
(1) Надо не руки отрубать, а программный запрет ставить.
Всё что можно ограничить из кода - надо ограничить. Только для чего нельзя - применять меру "отрубания рук". |
|||
3
vladko
30.06.20
✎
09:36
|
(0) чтобы нумерация перешла на "100" нельзя, чтобы был документ с номером "99", должен быть "099". А лучше всего "0000099". Там что переномеруй конфигурацию с лидирующими нулями. Длина номера документа (по количеству символов в нём) должна быть одинакова для какого-нибудь вида документа.
|
|||
4
vladko
30.06.20
✎
09:37
|
+(3) "переномеруй конфигурацию" читать как "перенумеруй документы"
|
|||
5
Ihor
30.06.20
✎
12:42
|
Злопчинский victuan1 vladko - спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |