Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Провить на заполнение реквизит          
Log1c Подменю пользователя
сообщение 02.07.14, 11:10
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

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

Проблема:
В 8.1 нет свойства у реквизита "проверка заполнения".
Есть свойство "АвтоОтметкаНезаполненного" но оно только подчеркивает красным поле.

Нашел что это можно сделать через метод ОбработкаПроверкиЗаполнения(...)
Но не при проведении, ни при записи этот метод не вызывается.
Получается что его надо вызывать.
Добавил вызов в ПриЗаписи();

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    ПроверяемыеРеквизиты.Добавить("Сотрудник");
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
    ОбработкаПроверкиЗаполнения(Ложь, Новый Массив);
КонецПроцедуры


Вопрос: Можно улучшить код или как-то по другому сделать?


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

sava1 Подменю пользователя
сообщение 02.07.14, 11:21
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Если конфа стандартная - то лучше проверять в подписке. Там доступен Источник:
типа так - Если не значениеЗаполнено(Источник.Сотрудник) тогда отказ=истина

logist Подменю пользователя
сообщение 02.07.14, 11:53
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Log1c @ 02.07.14, 11:10) *
Можно улучшить код

Можно. Вызывать проверку ПередЗаписью, это уменьшит дерганье базы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: Log1c,

Log1c Подменю пользователя
сообщение 02.07.14, 12:13
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(sava1 @ 02.07.14, 12:21) *
Если конфа стандартная - то лучше проверять в подписке. Там доступен Источник:
типа так - Если не значениеЗаполнено(Источник.Сотрудник) тогда отказ=истина

На счет подписки не понял. Есть какая-то Глобальная функция или метод которая вызывается При записи документа?

Цитата(logist @ 02.07.14, 12:53) *
Можно. Вызывать проверку ПередЗаписью, это уменьшит дерганье базы.


Да, действительно, не задумывался над этим.

Но мне мой код, тот что выше все равно не подошел.
Я не могу отследить записался ли документ чтобы сообщить пользователю что он реквизит не заполнил.
Т. е. переменная Отказ в обоих случаях остается Ложь, хотя документ и не проводиться.

Прийдется делать по старинке.


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

logist Подменю пользователя
сообщение 02.07.14, 13:21
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Сделайте по простому в ПередЗаписью добавьте строчку
Отказ = Не ЗначениеЗаполнено(Сотрудник);



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 02.07.14, 17:07
Сообщение #6

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(logist @ 02.07.14, 11:53) *
Можно. Вызывать проверку ПередЗаписью, это уменьшит дерганье базы.

Тогда мы не сможем сохранить недозаполненный документ. Это неправильно.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 02.07.14, 17:39
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Ardi @ 02.07.14, 17:07) *
Тогда мы не сможем сохранить недозаполненный документ. Это неправильно.

Ок, вставьте, ту же строчку, в ОбработкуПроведения smile.gif

p.s. почему порекомендовал именно так - бывают случаи когда людей надо приучивать сразу заполнять необходимые реквизиты, может быть полезно там - где это ключевой реквизит, например.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Rayne Подменю пользователя
сообщение 03.07.14, 7:32
Сообщение #8

Говорящий
Иконка группы
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0

В стандартных конфигурациях проверка заполнения реквизитов всегда в обработке проведения. (Даже в конфигурациях 1С 7.7).


Signature
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im

Домовик Подменю пользователя
сообщение 03.07.14, 8:20
Сообщение #9

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

а вынести кнопку на форму "проверка на заполнение" кроме стандартной проверки...
мне всегда было удобней лишний раз кляцнуть на "синтакс-контроль" в конфигураторе, чем потом в Предприятии обнаруживать и вылетать с программы опять.
Пользователь не обидится.

Цитата(logist @ 02.07.14, 13:39) *
p.s. почему порекомендовал именно так - бывают случаи когда людей надо приучивать сразу заполнять необходимые реквизиты, может быть полезно там - где это ключевой реквизит, например.


да. особенно, когда программист или пользователь сам хочет протестировать выполнение чего-то, там, не связанного с заполнением реквизита - одно удовольствие все десять подряд вылетать с проведения smile.gif

Сообщение отредактировал Домовик - 03.07.14, 8:20

Log1c Подменю пользователя
сообщение 03.07.14, 10:56
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(Rayne @ 03.07.14, 8:32) *
В стандартных конфигурациях проверка заполнения реквизитов всегда в обработке проведения. (Даже в конфигурациях 1С 7.7).


Я как раз занимался полгода переписыванием проверок из ОбработкиПроведения в ПриЗаписи. ИМХО надо отлавливать неверные данные как можно раньше.


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

Vofka Подменю пользователя
сообщение 03.07.14, 11:06
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(Rayne @ 03.07.14, 8:32) *
В стандартных конфигурациях проверка заполнения реквизитов всегда в обработке проведения.

А когда-то давно (ещё может в 8.0), возможно, этого сделать нельзя было, потому что определить что документ именно проводится можно было только в ОбработкаПроведения (то же самое и в 7.7). А теперешним конфигурациям, которые не на управляемых формах по сколько лет с какой версии платформы они начинали разрабатываться? old.gif
А в конфигурациях, которые изначально разрабатывались на платформе 8.2 - такого нету.

Цитата(Log1c @ 03.07.14, 11:56) *
Я как раз занимался полгода переписыванием проверок из ОбработкиПроведения в ПриЗаписи. ИМХО надо отлавливать неверные данные как можно раньше.

Я тоже так считаю. Но надо было это переносить хотя бы в ПередЗаписью и там смотреть документ проводится или просто записывается и выполнять проверку только если проводится.

Сообщение отредактировал Vofka - 03.07.14, 11:07

Спасибо сказали: Домовик,

Rayne Подменю пользователя
сообщение 03.07.14, 13:12
Сообщение #12

Говорящий
Иконка группы
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0

Цитата(Vofka @ 03.07.14, 12:06) *
А когда-то давно (ещё может в 8.0), возможно, этого сделать нельзя было, потому что определить что документ именно проводится можно было только в ОбработкаПроведения (то же самое и в 7.7).


О как. Как-то даже не задумывалась, проверка там не мешала никогда.


Signature
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im

Vofka Подменю пользователя
сообщение 03.07.14, 14:00
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(Rayne @ 03.07.14, 14:12) *
проверка там не мешала никогда.

Это смотрю кому smile.gif . Часто задача может решаться более чем 1 способом. Какой-то способ лучше, какой-то хуже, но конечный результат будет одинаковый.
Кстати я свой пост выше изменял и не дочитал, что немного потерялся смысл.
Цитата(Vofka @ 03.07.14, 12:06) *
А когда-то давно (ещё может в 8.0), возможно, этого сделать нельзя было

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 5:48
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!