Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Длина номера ГТД

Привет! Бух 3.0
Никак не могу отыскать модуль, где прячется функция ограничения длины номера для вывода в печатные формы, в частности УПД. Клиент настаивает, чтобы я выводил 4-й блок номера ГТД
Ответ: () в реквизит РегистрационныйНомер уже ранится обрезанное и в документы и книгу покупок тянет из этого реквизита. Так что если там сохранен обрезанный гтд то он таким и будет
Вопрос: Проверить длину реквизита

Здравствуйте. Недавно начал изучать 1с и уже проблемы... Может кто поможет. Вот что нужно сделать:
1. Создайте справочник «Контрагенты» с реквизитом УНН (строка 10). Создайте подчиненный ему справочник «Расчетные счета» с реквизитами:
- Номер счета (строка 20)
- Банк (справочник «Банки»)
- Валюта (справочник «Валюты»)

2. При записи расчетного счета необходимо проверить, чтобы в номере счета не содержалось никаких символов, кроме цифр; в противном случае расчетный счет не записывать и выводить сообщение пользователю.

3. При записи расчетного счета также нужно проверить, чтобы длина номера счета не превышала 13 символов.

4. Для справочника расчетных счетов создать форму элемента. На форме при выборе банка разрешать выбирать только те банки, у которых первые 3 цифры кода «153».

5. На форме списка справочника «Контрагенты» разместить кнопку, по нажатии которой сообщатся наименования всех контрагенты, у которых УНН начинается с цифры 5.


И тут уже на 2 пункте я завис... Как проверить что в реквизит вводятся именно цифры? и что длина меньше 13 символов?
Если до этого мы явно указали что там тип "строка" и длина "20". Менять значения нельзя
Ответ: Вы наверное просто пустую кнопку создали на форме. Можно сразу создавать команду и перетаскивать её на форму в виде кнопки.
Вопрос: v7: УРБД Нарушена уникальность номеров документов.

Есть две базы 7.7 "Торговля и склад" Центральная и периферийная.
(Далее ЦБ и ПБ)
В ЦБ увеличиваю длину кода документа Счет (тип-текстовый)  с 8 до 10 и вылетает сообщение:
"Нарушены правила уникальности номеров документов Счет -        4452016    :Ц-009492  
Нарушены правила уникальности номеров документов Счет -        4452016    :Ц-009493
...................................................
и т.п." 

Насколько это критично и что значит? Можно ли увеличивать длину кода??
Ответ: () это уже давным давно было нарушено. и вы с этим прекрасно жили несколько лет.

а теперь при изменении длины номера программа устроила проверку
Вопрос: как найти длину строки (аналог .lengh())

как найти длину строки (аналог .lengh() String())
Ответ:
manking
Reder,

1) А СтрДлина() рассчитывает длину каждый раз или где то внутри класса строки хранится int(size_t) счётчик с длиной строки?
2) Если строка может быть большая(например текст статьи большой), то как правильно проверить на то что строка пустая СтрДлина() <= 0 или как то еще чтобы не нагружать сервер?

1 каждый раз.
2 не СтрДлина() =""
Вопрос: Программная установка номеров УТ 10.3

Пользователи сбили нумерацию. Чтобы не переименовывать, решили сделать программную установку номеров, которая игнорировала бы неправильные номера.
В модуле объекта дописал процедуру установки номера:

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    
    ГодДаты = Год(Дата);
    Если ГодДаты <> 2018 Тогда
        Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    РеализацияТоваровУслуг.Номер КАК Номер
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ГОД) = &НачалоГода
        |    И НЕ ПОДСТРОКА(РеализацияТоваровУслуг.Номер, 7, 2) = ""43""
        |    И НЕ ПОДСТРОКА(РеализацияТоваровУслуг.Номер, 7, 2) = ""44""
        |
        |ДЛЯ ИЗМЕНЕНИЯ
        |
        |УПОРЯДОЧИТЬ ПО
        |    Номер УБЫВ";
    
    Запрос.УстановитьПараметр("НачалоГода", НачалоГода(Дата));
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    
    Если Выборка.Следующий() Тогда
        ЧислоМаксНомер = Число(Выборка.Номер);
        НужноеЧисло = ЧислоМаксНомер + 1;
        Номер = Прав("0000000000000"+Формат(НужноеЧисло,"ЧГ="),11);
        СтандартнаяОбработка = Ложь;
    КонецЕсли;
    
КонецПроцедуры

Контроль уникальности номеров включен, и даже иногда выдает ошибки. Но тем не менее, периодически возникает задвоение номеров.
Как удается записаться в базу документам с одинаковыми нумерами, и что с этим сделать можно?
Ответ: () Мне кажется, ты ошибаешься.

вот описание. ПередЗаписью() модуля объекта уже в транзации, так же, как и присвоение номера.
Вопрос: Как изменить длину реквизита (тип - строка) справочника в управляемой форме

Добрый день !
Собственно возник вопрос. Имеется реквизит справочника (ИНН контрагента), изначально - длина 50. Нужно, в зависимости от значения типа клиента (физлицо или юрлицо) менять разрядность (10 или 12 символов) в форме. Можно ли это изменить программно ?
Ответ:
Длину реквизита, конечно же, изменить нельзя. Можно поставить "заглушку", чтобы туда не могли ввести больше, чем надо. Воспользуйтесь функцией формат и маской.
Вопрос: Получить номер текущего документа в обработке заполнения

Добрый день! Пишу обработку заполнения с формированием кода изделия, частью кода будет номер документа, смотрю отладчиком, номер все время нулевой, как решить вопрос?

Функция ПолучитьКод(Код="") Экспорт
    Номер=ЭтотОбъект.Номер;
    Если НЕ ЗначениеЗаполнено(Дилер) тогда
        Предупреждение("Заполните Дилера.",15); 
        возврат "";
    иначе    
        если ДляКода=9 Тогда
            Предупреждение("Исчерпан набор кодов для документа.",15); 
            возврат "";
        иначеесли не значениезаполнено(Код) тогда
            ДляКода=ДляКода+1;
            
            Код1=Строка(Число(""+Константы.ОбщийПрефикс.Получить()+Константы.ПрефиксUV.Получить()));
            длинаКод=СтрДлина(""+Число(Дилер.Код))+1;
            Для ии=длинакод По 4 Цикл
                Код1=Код1+"0";    
            КонецЦикла;
            код1=код1+Формат(Число(Дилер.Код),"ЧГ=0");
            длинаКод=СтрДлина(Формат(Число(Номер),"ЧГ=0"))+1;
            
            код1=код1+СокрЛП(Формат(Число(Номер),"ЧГ=0"))+ДляКода;
            
            
            возврат код1;
        иначе
            Код1=Строка(Число(""+Константы.ОбщийПрефикс.Получить()+Константы.ПрефиксПотолка.Получить()));
            длинаКод=СтрДлина(""+Число(Дилер.Код))+1;
            Для ии=длинакод По 4 Цикл
                Код1=Код1+"0";    
            КонецЦикла;
            код1=код1+Формат(Число(Дилер.Код),"ЧГ=0");
            длинаКод=СтрДлина(Формат(Число(Номер),"ЧГ=0"))+1;
            Для ии=длинакод По 5 Цикл
                Код1=Код1+"0";    
            КонецЦикла;
            код1=код1+СокрЛП(Формат(Число(Номер),"ЧГ=0"))+Прав(Код,1);
            
            
            возврат код1;
        конецесли; 
    конецесли;
конецфункции
Ответ: Бессмысленное занятие наделять каки-то левым смыслом номера документов и коды справочников. Тем более бессмысленно, если Вы не собираетесь далее их поддерживать в алгоритмах.
Вопрос: "Номер сообщения меньше либо равен ранее принятому" -обнуление номеров уже не решение?

В связи с мытарствами
  • Перестала работать синхронизация между БП 3.0.52(51) и 1С-Розница 2.2.5(6) после обновления

приходится исправлять "Номер сообщения меньше либо равен ранее принятому" или что-то подобное созвучное, не записал точно - ранее заходил в обработку "Регистрация изменений для обмена" и обнулял номера, после чего обмены надолго или навсегда продолжали работать.
Теперь же это срабатывает только раз, а после загрузки-выгрузки файлов обмена восстанавливаются прежние номера до обнуления, выдавая прежнюю ошибку

А само обнуление не помогает ничего ни выгрузить, ни загрузить, т.к. обнуления номеров снимает старую регистрацию для обмена и надо форсировать их изменение вручную

То ли я не выспался, то ли это действительно так?
Ответ:
Нужно не обнулять номера, а прибавлять к номерам 1, но делать это нужно на "правильной" стороне
Вопрос: Соответствие номеров документов

Добрый всем день!
Ткните носом в закон или другой официальный документ, а то никак не могу найти однозначного и корректного ответа.
Схема работы простая: в офисе - Бухгалтерия, в магазине - УНФ. В магазине продается товар, выписывается ПКО. Происходит синхронизация. В бухгалтерию садится ПКО с другим номером.
Бухгалтера, с которыми я общался, открещиваются от этого, утверждая, что номер документа у клиента и номер ПКО в Бухгалтерии должен быть один и тот же. А как на самом деле?
Ответ:
Смотрите, в магазине на УНФ создали ПКО. Номер присвоился 0000001. В офисе, уже в Бухгалтерии отбили другому клиенту ПКО. Тоже номер 0000001. При синхронизации же будет номер продолжен, т.е. документ из УНФ сядет с номером 0000002. И этот документ потом включается в регламентированную отчетность. Хотя у клиента корешок на 0000001. Это же неправильно?
Вопрос: Проверка уникальности номеров.

Добрый день 
1С:Предприятие 8.3 (8.3.9.1818)
"Управление торговлей", редакция 10.3 (10.3.10.4)
С помощью некоторой обработки создаются документы реализации товаров и услуг. Проблема в том что иногда документы создаются с одинаковыми номерами. Насколько я понимаю, при записи документа платформа сама должна проверять уникальность номера. В свойствах документа галочка "Контроль уникальности" стоит. Подскажите в каких случаях платформа может не контролировать уникальность номеров?
Ответ: () сравни два "одниковых" номера, хоть в консоли свяжи документ сам на себя по номеру