Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мар 2024, 12:43

Проверка на "новую" запись в рег. сведений

Автор nomer13, 04 янв 2011, 10:52

0 Пользователей и 1 гость просматривают эту тему.

nomer13

Подскажите, пожалуйста, кто знает. В независимый регистр сведений добавляем запись интерактивно. Т.е. открыта форма записи. Если эта запись новая, но нужно почистить значение одного ресурса. Но как определить, что запись новая?

vlmk

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

nomer13

Большое спасибо за попытку помочь. Тут дело вот в чем: конфигурация естественно, самописная (ЗУП); регистр сведений ШтатноеРасписаниеОрганизаций. В него добавлен реквизит, значение которого пользователь должен поддерживать в актуальном состоянии, но поскольку пользователь "склерозный", то он постоянно забывает его заполнять. При записи штатной единицы добавлена проверка на пустое значение этого реквизита и этим одна проблема "склерозника" была решена. Осталась другая проблема: пользователь создает новую запись методом копирования и реквизит оказывается заполненным старым, неактуальным для новой штатной единицы значением. Можно было бы при создании новой записи просто очищать значение реквизита и этим "через не хочу" заставлять пользователя обращать на него внимание, но в регистре сведений метод ЭтоНовый() отсутствует. Может есть какое-то другое решение?

vlmk

Доброго времени суток... Можно решить так (не знаю подойдет тебе или нет)...
У меня ЗУП с собой нет только на работе, на примере бухи 8.1 1.6.27 РегистрСведений: АдресныйКлассификатор, главное принцип:
В ФормаЗаписи добавить:

Процедура ПриОткрытии()
      ЭлементыФормы.Наименование.Значение = "";
КонецПроцедуры


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

Процедура ПередЗаписью(Отказ)
   
   Если ПустаяСтрока(ЭлементыФормы.Наименование.Значение) Тогда
      Режим = РежимДиалогаВопрос.ОК;
      Ответ = Вопрос("Не заполнено поле Наименование!", Режим, 0);
      Отказ = Истина;
   КонецЕсли;

КонецПроцедуры


Тут проверяем добавили они что нибудь или оставили поле пустое, если пустое, выкидывает на заполнение формы и предупреждает сообщением....

Простого больше ничего в голову не пришло...

cska-fanat-kz

Цитата: nomer13 от 06 янв 2011, 08:56
Большое спасибо за попытку помочь. Тут дело вот в чем: конфигурация естественно, самописная (ЗУП); регистр сведений ШтатноеРасписаниеОрганизаций. В него добавлен реквизит, значение которого пользователь должен поддерживать в актуальном состоянии, но поскольку пользователь "склерозный", то он постоянно забывает его заполнять. При записи штатной единицы добавлена проверка на пустое значение этого реквизита и этим одна проблема "склерозника" была решена. Осталась другая проблема: пользователь создает новую запись методом копирования и реквизит оказывается заполненным старым, неактуальным для новой штатной единицы значением. Можно было бы при создании новой записи просто очищать значение реквизита и этим "через не хочу" заставлять пользователя обращать на него внимание, но в регистре сведений метод ЭтоНовый() отсутствует. Может есть какое-то другое решение?

Насчет копирования - здесь по-проще. У записи есть свойство ПараметрОбъектКопирования. Если запись вводится копированием то это свойство не равно Неопределено. Что-то вроде:


Процедура ПриОткрытии()
    Если ПараметрОбъектКопирования <> Неопределено Тогда
        Сотрудник = Справочники.Сотрудники.ПустаяСсылка();
    КонецЕсли;
КонецПроцедуры
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vlmk

Согласен по поводу:
   Если ПараметрОбъектКопирования <> Неопределено Тогда

а я думал как этот момент поймать )


nomer13


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск