Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 102
1
1C 8.x

Проверка заполнения

21.03.2014, 16:35. Показов 4517. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть обработка при помощи нее можно ЗАПИСАТЬ документ. как сделать чтобы если реквизит ТЧ "Номенклатура"не заполнен обработка не могла записать док
1C
1
2
3
Если Не ЭлементыФормы.ТабличнаяЧасть.Колонки.Номенклатура=ПроверкаЗаполнения Тогда 
    Сообщить("НЕ ВАРИАНТ")
    КонецЕсли;
в данном случае он запрещает записть при любом варианте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2014, 16:35
Ответы с готовыми решениями:

Проверка заполнения полей Табличной части
8,2 Управляемое приложение Блин выручайте, уже час бьюсь над казалось бы мелочью и все никак ...

Проверка заполнения полей СтандартногоПериода в отчете СКД
Всем привет! Платформа 1С:Предприятие 8.3 (8.3.10.2580) Возникла необходимость не заполнять...

Проверка заполнения
Доброго всем времени суток! Подскажите хотяб небольшими набросками как можно организовать...

Проверка заполнения единиц измерения в зависимости от вида элемента (товар/услуга)
У меня запись вебинара Чистова. Учебная задача - выяснить – нужна ли проверка заполнения для...

9
Эксперт 1С
843 / 606 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
21.03.2014, 16:49 2
В коде обработки перед записью документа сделать проверку заполнения реквизита, и если он незаполнен, отказаться от записи.
0
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 102
21.03.2014, 16:57  [ТС] 3
Цитата Сообщение от Tklwegsd Посмотреть сообщение
В коде обработки перед записью документа сделать проверку заполнения реквизита, и если он незаполнен, отказаться от записи.
вот весь код для большего понимания
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Док=Документы.ВнутреннийЗаказ.СоздатьДокумент();
    Если Не ЭлементыФормы.ТабличнаяЧасть.Колонки=ПроверкаЗаполнения Тогда 
    Сообщить("НЕ ВАРИАНТ");
        Иначе  Для Каждого ТекСтрока  Из ТабличнаяЧасть Цикл 
    Строка=Док.Товары.Добавить();
    Строка.Количество=ТекСтрока.Заказать;
    Строка.Номенклатура=ТекСтрока.Номенклатура;  
       КонецЦикла; 
    Юзер=ПользователиИнформационнойБазы.ТекущийПользователь();
    Док.Комментарий=Юзер.Имя;
    Док.Дата=ТекущаяДата();
    Док.Записать();
    Сообщить("Заказ оформлен");
    КонецЕсли;     
        
КонецПроцедуры
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
21.03.2014, 17:01 4
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Док=Документы.ВнутреннийЗаказ.СоздатьДокумент();
    Если Не ЗначениеЗаполнено(ЭлементыФормы.ТабличнаяЧасть.Колонки.Номенклатура) Тогда 
        Сообщить("НЕ ВАРИАНТ");
        Возврат;
    Иначе  Для Каждого ТекСтрока  Из ТабличнаяЧасть Цикл 
    Строка=Док.Товары.Добавить();
    Строка.Количество=ТекСтрока.Заказать;
    Строка.Номенклатура=ТекСтрока.Номенклатура; 
       КонецЦикла; 
    Юзер=ПользователиИнформационнойБазы.ТекущийПользователь();
    Док.Комментарий=Юзер.Имя;
    Док.Дата=ТекущаяДата();
    Док.Записать();
    Сообщить("Заказ оформлен");
    КонецЕсли;          
КонецПроцедуры
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.03.2014, 17:06 5
Цитата Сообщение от GreenkO Посмотреть сообщение
ЗначениеЗаполнено(ЭлементыФормы.ТабличнаяЧасть.Колонки.Номенклатура)
И что выдаёт сиё выражение? Акцепт существования колонки "Номенклатура"?

Не по теме:

При обследовании желудка у пациента обнаружили желудок.

0
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 102
21.03.2014, 17:06  [ТС] 6
Цитата Сообщение от GreenkO Посмотреть сообщение
Если Не ЗначениеЗаполнено(ЭлементыФормы.ТабличнаяЧасть.Колонки.Номенклатура) Тогда
Если Не ЗначениеЗаполнено(ЭлементыФормы.ТабличнаяЧасть.Колонки.Номенклатура) Тогда
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
21.03.2014, 17:08 7
Лучший ответ Сообщение было отмечено duk337 как решение

Решение

поправочка

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Док=Документы.ВнутреннийЗаказ.СоздатьДокумент();
    Отказ = Ложь;
    Для Каждого ТекСтрока  Из ТабличнаяЧасть Цикл 
      Если ЗначениеЗаполнено(ТекСтрока.Номенклатура) Тогда 
           Строка=Док.Товары.Добавить();
           Строка.Количество=ТекСтрока.Заказать;
           Строка.Номенклатура=ТекСтрока.Номенклатура; 
      Иначе
           Отказ = Истина;
      КонецЕсли;
      Юзер=ПользователиИнформационнойБазы.ТекущийПользователь();
    КонецЦикла; 
    Док.Комментарий=Юзер.Имя;
    Док.Дата=ТекущаяДата();
    Если Не Отказ Тогда
           Док.Записать();
           Сообщить("Заказ оформлен");
    Иначе
           Сообщить("НЕ ВАРИАНТ");
    КонецЕсли;          
КонецПроцедуры
2
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.03.2014, 17:13 8
Лучший ответ Сообщение было отмечено Антон Машенцев как решение

Решение

Можно, правда тупо
1C
1
Если НЕ ТабличнаяЧасть.Найти(Справочники.Номенклатура.ПустаяСсылка(),"Номенклатура")=Неопределено
0
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 102
21.03.2014, 17:33  [ТС] 9
Цитата Сообщение от duk337 Посмотреть сообщение
Если НЕ ТабличнаяЧасть.Найти(Справочники.Номенклатура.ПустаяСсылка(),"Номенклатура")=Нео пределено
отличный вариант но как и в предыдущем у GreenkO, обработка позволяла записывать документ если не добавлена строчка в ТЧ, если добавлена и пустая она то тогда НЕ ВАРИАНТ.
исправил таким образом добавил еще условие
1C
1
2
ИначеЕсли ЗначениеЗаполнено(ТабличнаяЧасть)=Ложь Тогда
      Сообщить("ВЫБЕРЕТЕ НОМЕНКЛАТУРУ!!!");
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
21.03.2014, 20:07 10
1.
1C
1
2
3
4
Процедура КнопкаВыполнитьНажатие(Кнопка)
ф="Данные не введены. Документ не будет создан.";
Если ТабличнаяЧасть.Количество()=0 Тогда Предупреждение(ф);Возврат;КонецЕсли;
...
2.Сообщить("ВЫБЕРИТЕ НОМЕНКЛАТУРУ!!!"); - так можно в на форуме, а не у клиента косячить.
0
21.03.2014, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2014, 20:07
Помогаю со студенческими работами здесь

Кнопка заполнения
Здравствуйте! Возник вопрос, как сделать что бы при нажатии на кнопку в поле ввода с типом...

Автоматическое заполнения реквизита
Добрый день! Столкнулся с такой проблемой. Есть некий документ, в нем два реквизита "группа" и...

Обработка заполнения таблиц
Добрый день. В очередной раз обращаюсь к профи за помощью. Помогите написать код. Есть две...

Обработка создания и заполнения
Здравствуйте. Передо мной стоит такая задача: нужно создать обработку, которая программно заполняла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru