Страницы: 1
RSS
Проверка заполненности реквизита
 
Возможно выбран не тот раздел для вопросв но тем не менее..
Программа не дает сохранить карточку в 1с. Пишет «поле наименование не заполнено». Могу ли я установить, чтобы это поле по умолчанию сразу заполнялось каким-то стандартным реквизитом, или просто отключить как то проверку заполненности, чтобы иметь возможность предсоздать поставщиков (моя залача конкретно), а потом другие сотрудники бы брали эти уже созданные карточки и вносили всю необходимую информацию.  
 
Часть полей можно не заполнять, а часть нет. В первом случае система даст вам возможность сохранить изменения, а во втором нет. Я так понимаю ваш случай второй. Если есть доступ - зайдите как Админ в Конфигуратор. Найдите там в справочниках список стандартных реквизитов для каждого справочника.
Открывается: В конфигураторе ->Справочники -> Название справочника -> (правая кнопка мыши)-> Стандартные Реквизиты.
Потом найдите тот реквизит, который вас интересует. В вашем случае это "наименование". Далее Свойства и Проверка заполнения. Тут проверьте, можно ли скорректировать установленное значение, т.е. изменить Выдавать ошибку, на не выдавать ошибку.
Сохраните. Вернитесь в пользовательскую конфигурацию и попробуйте еще раз.

По поводу автозаполнения какого-то поля по умолчанию не подскажу. Но по-идее наверно в коде можно поставить, что значение такого-то реквизита равно столько. Но это уже программист должен делать, не через консоль визуальную.
 
Цитата
Виктория написал:
Часть полей можно не заполнять, а часть нет. В первом случае система даст вам возможность сохранить изменения, а во втором нет. Я так понимаю ваш случай второй. Если есть доступ - зайдите как Админ в Конфигуратор. Найдите там в справочниках  список стандартных реквизитов  для каждого справочника.
Открывается : В конфигураторе ->Справочники -> Название справочника -> (правая кнопка мыши)-> Стандартные Реквизиты.
Потом найдите тот реквизит, который вас интересует. В вашем случае это "наименование". Далее Свойства и Проверка заполнения. Тут проверьте, можно ли скорректировать установленное значение, т.е. изменить Выдавать ошибку, на не выдавать ошибку.
Сохраните. Вернитесь в пользовательскую конфигурацию и попробуйте еще раз.

По поводу автозаполнения какого-то поля по умолчанию не подскажу. Но по-идее наверно в коде можно поставить, что значение такого-то реквизита равно столько. Но это уже программист должен делать, не через консоль визуальную.

А как может быть, что в 1С уже созданы объекты. У них не заполнены какие-то реквизиты. Но в настройках стоит проверять заполненность. Я захожу в такую карточку, вношу какую-то информацию в одно из полей. Но сохранить мне уже не дает – выпадает ошибка, что не все заполнено. И это не единичный случай.

 

Возможно вы не так давно работаете? Уточните у коллег, откуда эта информация в базе. Скорее всего некоторое время назад был перенос данных из другой конфигурации, а может даже и не с 1С. И при переносе перенесли что было и принудительно сохранили.

Теперь, когда вы открываете эти принудительно сохраненные объекты, система выполняет запланированную проверку заполненности и дает вам ошибку.

Если таких объектов много, и информацию нужно вписывать одну и ту же. Или если от какого-то заполненного параметра зависит, чем заполнять пустые сейчас позиции, то это можно сделать через обработку. Чтобы не корректировать все руками.

 
 а можно как-то это обойти, просто вписать информацию, которая появляется, а потом опять же принудительно сохранять карточку?
 
Цитата
Андрей написал:
а можно как-то это обойти, просто вписать информацию, которая появляется, а потом опять же принудительно сохранять карточку?
Как устроена проверка заполненности: есть 2 значения – истина и ложь. Если значение найдено (любое) – истина. Не найдено – ложь.
Если при этом стоит проверка на заполненность и поле пустое (т.к. ложь), то 1с выдаст ошибку, которая без заполнения всех требуемых полей не пропадет, и вы не сможете ничего сохранить.
За это отвечает функция Функция ПроверитьЗаполнение()
Вот так примерно это выглядит в программе:
Процедура СформироватьТест(Команда)
       // Проверим заполнение обязательных реквизитов
Если Не ПроверитьЗаполнение() Тогда  
Возврат;                        
КонецЕсли;    
СформироватьСервер();
КонецПроцедуры  
Поэтому правильнее будет или добавить всю информацию в карточку. Или как советую коллеги выше, выполнить это действие через обработку.
 

В качестве информации. В 1с есть не и второй способ проверки заполненности реквизитов. Программисты прямо в коде могут присать функцию, которая будет проверять, если ли в определенном поле какое-либо значение. Для проверки ссылочных значений применяется встроенная функция Пустая(), которая вызывается непосредственно из ссылки.Если вам нужно проверить строковое значение – можно взять ПустаяСтрока(<Строка>). Если не хотите заморачиваться с определением типа значения, есть универсальный вариант ЗначениеЗаполнено(<Значение>). Этот метод работает со значениями любых типов.

Процедура ПроверитьЗаполнение()
       
        Если Номенклатура.Пустая() Тогда
               Сообщить("Пусто");
        КонецЕсли;
       
        Если ПустаяСтрока(Артикул) Тогда
               Сообщить("Пусто");
        КонецЕсли;
               
       
        Если НЕ ЗначениеЗаполнено(Артикул) Тогда
               Сообщить("Пусто");
        КонецЕсли;
       
КонецПроцедуры

Страницы: 1