|
Проверка заполненных данных через впф. | ☑ | ||
---|---|---|---|---|
0
AL_Rain
16.08.16
✎
13:52
|
Собсна сабж, пишу ВПФ, открывая РТиУ и жмакая кнопку печать, затем выбирая мою ВПФ, должно проверяться заполнены ли данные по доставке в заказе покупателя, если да, то печатать документы, нет - отказ.
Сам ещё нуб в 1С, поэтому обращаюсь к вам за помощью... Так понимаю, надо сначала выгрузить данные "заказа покупателя" потом свернуть и оттуда проверить их. ТаблЗнач = СсылкаНаОбъект.Товары.Выгрузить(); //СсылкаНаОбъект - Документы.РеализацияТоваровУслуг ТаблЗнач.Свернуть("ЗаказПокупателя"); Для каждого Стр из ТаблЗнач Цикл Если ОплатаДоставкиПокупателем = Стр.Документы.ЗаказПокупателя.ОплатаДоставкиПокупателем Тогда //код печати документа Иначе Отказ = Истина; КонецЕсли; КонецЦикла; Правильно ли вообще делаю? |
|||
1
Горогуля
16.08.16
✎
13:57
|
вместо отказа рисуй фигу в документе. не откажешь
|
|||
2
asady
16.08.16
✎
13:58
|
(0) после
ТаблЗнач.Свернуть("ЗаказПокупателя"); в ТаблЗнач останется одна колонка "заказПокупателя" здесь будет ошибка: Стр.Документы.ЗаказПокупателя а вообще такое лучше делать запросом |
|||
3
AL_Rain
16.08.16
✎
14:20
|
(1) Не знал, запомню... (2) Попробую запросом сделать. Пасиб.
|
|||
4
AL_Rain
16.08.16
✎
15:34
|
Написал такой запрос для проверки заполненных данных, но что-то тишина, сообщения не выходят никакие, отладчиком проверяю, игнорится код после:
Пока Выборка.Следующий() Цикл Можете подсказать, куда мне копать...? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателя.ОплатаДоставкиПокупателем |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.ОплатаДоставкиПокупателем = &ОплатаДоставкиПокупателем"; Запрос.УстановитьПараметр("ОплатаДоставкиПокупателем", СсылкаНаОбъект);//Документы.ЗаказПокупателя.Выбрать(ОплатаДоставкиПокупателем)); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Доставка = Выборка.ОплатаДоставкиПокупателем; Если Не ЗначениеЗаполнено(Доставка) Тогда Сообщить("Запрос пустой"); Иначе Сообщить("Запрос не пустой"); КонецЕсли; КонецЦикла; |
|||
5
Горогуля
16.08.16
✎
15:42
|
нету следующего. вот прямо так сразу и нету
|
|||
6
AL_Rain
16.08.16
✎
16:03
|
(5) Понял. Если пишу так: Пока Выборка.Получить() Цикл, то получаю ошибку:
Недостаточно фактических параметров Пока Выборка.Получить() Цикл Если цикл вообще убираю, то получаю сообщение "Запрос пустой", хотя поле "ОплатаДоставкиПокупателем" заполнено в заказе. Что не так делаю? Либо направьте что-то конкретное почитать, голова пухнет от изобилия информации... |
|||
7
Горогуля
16.08.16
✎
16:04
|
может, заставить запрос что-то доставать из БД? например, корректным указанием параметра
|
|||
8
AL_Rain
16.08.16
✎
16:05
|
(7) А это разве не оно?
Запрос.УстановитьПараметр("ОплатаДоставкиПокупателем", СсылкаНаОбъект) |
|||
9
Горогуля
16.08.16
✎
16:06
|
(8) а следующего нет
|
|||
10
AL_Rain
16.08.16
✎
16:06
|
(9) А как мне из текущего получить?
|
|||
11
Горогуля
16.08.16
✎
16:08
|
(10) а и текущего нет. запрос пустой
|
|||
12
AL_Rain
16.08.16
✎
16:09
|
(11) жесть...
А как правильно запрос написать, чтобы получить нужные мне данные...? Делал по примерам из инета, вроде всё понятно описывают... |
|||
13
Горогуля
16.08.16
✎
16:10
|
>заполнены ли данные по доставке в заказе покупателя
это как понимать? |
|||
14
AL_Rain
16.08.16
✎
16:13
|
(13) http://savepic.ru/10996911.png
Тут заполнены данные в программе (скрин из конфигуратора для наглядности) |
|||
15
Горогуля
16.08.16
✎
16:17
|
СсылкаНаОбъект - реализация? ну дык найди у ей заказ и посмотри в туда
|
|||
16
Горогуля
16.08.16
✎
16:20
|
или все заказы
|
|||
17
AL_Rain
16.08.16
✎
16:20
|
(15) СсылкаНаОбъект у меня стоит на ДокументСсылка.ЗаказПокупателя, отладчиком тестирую только заказ покупателя и тишина, поэтому озадачен...
|
|||
18
Горогуля
16.08.16
✎
16:20
|
>пишу ВПФ, открывая РТиУ
уже что-то изменилось? |
|||
19
AL_Rain
16.08.16
✎
16:22
|
(18) До РТиУ позже дойду, я пока тестирую во внешней обработке с отладчиком, как у меня будет работать запрос, для получения данных по доставке из заказа покупателя.
|
|||
20
AL_Rain
16.08.16
✎
16:23
|
+ (19) Позже для СсылкаНаОбъект поставлю составной тип данных.
|
|||
21
Горогуля
16.08.16
✎
16:23
|
ЗначениеЗаполнено(СсылкаНаОбъект.ОплатаДоставки)
|
|||
22
AL_Rain
16.08.16
✎
16:28
|
(21) Всё равно игнорит на этой строке...
Пока Выборка.Следующий() Цикл |
|||
23
Горогуля
16.08.16
✎
16:29
|
от я тупой, а? ну как так? и в школу ходил, и верхнее образование получил. а донести мысль не могу
|
|||
24
Горогуля
16.08.16
✎
16:33
|
Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ОплатаДоставки) Тогда
ТабДокумент.Область(2, 2).Текст="й вам!"; |
|||
25
AL_Rain
16.08.16
✎
16:33
|
(23) Мысль то вы донесли, что нету следующего по выборке... Это я туплю, так как нуб пока что в 1С...
|
|||
26
Горогуля
16.08.16
✎
16:35
|
(25) а доносил мысль, что запрос ничего не выдаёт. а следом мысль, что можно проверить заполнение реквизита и без запроса
|
|||
27
AL_Rain
16.08.16
✎
16:36
|
(26) "Вот он очо, Михалыч!" (с)
Прокомментировать можете эту строку? ТабДокумент.Область(2, 2).Текст="й вам!"; Что откуда берётся? |
|||
28
Горогуля
16.08.16
✎
16:38
|
(27) это та самая фига из (1)
|
|||
29
AL_Rain
16.08.16
✎
16:39
|
(28) Ааа... понял... Благодарю...
|
|||
30
AL_Rain
17.08.16
✎
10:23
|
Забыл отписаться, вот рабочий код, вдруг понадобится новичкам вроде меня...
Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ЗаказПокупателя") И ЗначениеЗаполнено(СсылкаНаОбъект.АдресДоставки) Тогда //код для вывода на печать Иначе Сообщить ("Данные по доставке в заказе не заполнены."); КонецЕсли; |
|||
31
_stay true_
17.08.16
✎
10:40
|
(30) Молодец. Ответственный товарищ.
|
|||
32
AL_Rain
17.08.16
✎
14:02
|
Приветствую всех ещё раз. Продолжу свою тему, чтобы не плодить в новой. Нубский вопрос, в заказе покупателя заполнено поле выбора по имени "Покупатель" (тип булево).
Привожу скрин из конфигуратора для наглядности. http://savepic.ru/10996911.png В отладке внешней печатной форме прописал такой код для получения результата. Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ЗаказПокупателя") И ЗначениеЗаполнено(СсылкаНаОбъект.ОплатаДоставкиПокупателем) Тогда Сообщить (СсылкаНаОбъект.ОплатаДоставкиПокупателе); КонецЕсли; Получаю в сообщении 1. Как мне получить ответом в сообщении "Покупатель"? В инете в примерах пишут такой код: ЭлементыФормы.МоеПолеВыбора.Значение = "" Но он мне не подходит, если пишу так Сообщить (СсылкаНаОбъект.ОплатаДоставкиПокупателе.Значение = ""); То выдаёт ошибку указывая на Значение... |
|||
33
Горогуля
17.08.16
✎
15:17
|
>Сообщить (СсылкаНаОбъект.ОплатаДоставкиПокупателе);
а ничего, что тут поле объекта не обнаружено? |
|||
34
AL_Rain
17.08.16
✎
15:34
|
(33) ОплатаДоставкиПокупателем - букву М пропустил...
|
|||
35
Горогуля
17.08.16
✎
15:34
|
(34) и даже не запускал. не числового ли оно типа?
|
|||
36
Горогуля
17.08.16
✎
15:35
|
>Как мне получить ответом в сообщении "Покупатель"?
Сообщить("Покупатель"); внезапно, правда? |
|||
37
AL_Rain
17.08.16
✎
15:39
|
(36) Понял, вопрос закрыт, благодарю)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |