|
Не заполняется табличная часть в процедуре при записи на сервере | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
15.06.22
✎
13:52
|
Записывая, проводя документвыполняется процедура ЗаполнитьНаСервере(), она обновляет, переписывает табличную часть документа.
Смотрю по коду все проходит. но потом в документе ничего нет, как буд то бы табличная часть не обновилась. В чем может быть дело? &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если Не ЗначениеЗаполнено(Объект.ХХХ_ДатаОтгрузки) Тогда Сообщить("Не заполнена дата отгрузки!"); Возврат; КонецЕсли; // <- ЗаполнитьНаСервере(); |
|||
16
Kassern
16.06.22
✎
09:10
|
(12) "Потом начал делать в процедуре ПередЗаписью() в модуле объекта. Но тоже что то пошло не так, отказался от всего" - показывай уже как делал
|
|||
17
NIGHTHUNTER
16.06.22
✎
09:12
|
У табличной части поставил, проверка заполнения - выдавать ошибку. Но удается записать документ с пустой табличной частью. Почему?
|
|||
18
NIGHTHUNTER
16.06.22
✎
09:14
|
(16) Вчера все удалил. Так как вечером голова не работает. решил ограничится ограниченной сложностью. Или перенести решение на новый день.
Сегодня вот поставил галку у табличной части, проверка заполнения, выдавать ошибку! Что же это за галка. если удается записать документ с пустой табличной частью? Как тут наложить запрет? |
|||
19
Ryzeman
16.06.22
✎
09:14
|
(17) а ты флаг отказа взвёл?...
|
|||
20
Ryzeman
16.06.22
✎
09:16
|
>>Но тоже что то пошло не так, отказался от всего.
Этим можно описать 99% твоих проблем) |
|||
21
NIGHTHUNTER
16.06.22
✎
09:26
|
(19) Где его взвести нужно? Что бы было правильно?
|
|||
22
NIGHTHUNTER
16.06.22
✎
09:27
|
Думаю проверять ещё в процедуре ПередЗаписью() к чему тогда этот флаг проверка заполнения выдавать ошибку, если записать можно
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) q=1; КонецПроцедуры Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) q=1; КонецПроцедуры |
|||
23
NIGHTHUNTER
16.06.22
✎
09:28
|
(20) был вечер и голова отказала, сейчас вот занимаюсь
|
|||
24
Ryzeman
16.06.22
✎
09:28
|
Эх... Это конечно не педагогично
Процедура ТвойДокументПередЗаписью(Источник, Отказ) Экспорт Если Не ЗначениеЗаполнено(Объект.ХХХ_ДатаОтгрузки) Тогда Отказ = Истина; ОбщегоНазначения.СообщитьПользователю("ru = 'Не заполнена дата отгрузки, документ не записан!'"); КонецЕсли; КонецПроцедуры Хотя если эта дата отгрузки у тебя заполняется только на форме, то все проверки имеет смысл на форме и делать. Но честно говоря я уже не хочу вникать что там у тебя за задачи и проблемы. |
|||
25
Kassern
16.06.22
✎
09:28
|
(21) есть такой параметр волшебный в процедуре перед записью. Называется Отказ, дальше надеюсь сами догадаетесь
|
|||
26
Ryzeman
16.06.22
✎
09:29
|
Процедура ТвойДокументПередЗаписью(Источник, Отказ) Экспорт
Если Не ЗначениеЗаполнено(Источник.ХХХ_ДатаОтгрузки) Тогда Отказ = Истина; ОбщегоНазначения.СообщитьПользователю("ru = 'Не заполнена дата отгрузки, документ не записан!'"); КонецЕсли; КонецПроцедуры поправил |
|||
27
Kassern
16.06.22
✎
09:30
|
(24) Как-то у вас не педагогично, нужно же на реквизит сослаться, чтобы возле него ошибка отобразилась)
|
|||
28
NIGHTHUNTER
16.06.22
✎
09:32
|
(25) Вот, я и хочу сейчас это сделать в модуле объекта.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) q=1; КонецПроцедуры |
|||
29
Ryzeman
16.06.22
✎
09:32
|
(27) у меня темы ТС фрустрацию вызывают. Он же реально не учится. И лишний раз перепроверять что он там пишет или что я сам пишу не хочется, тем более стараться.
|
|||
30
Ryzeman
16.06.22
✎
09:33
|
(28) и что по-твоему твоя процедура делает?
|
|||
31
Kassern
16.06.22
✎
09:33
|
(28) just do it!
|
|||
32
Мимохожий Однако
16.06.22
✎
09:35
|
(29) Зато ты учишься на его ошибках. Есть возможность потренировать психологическую устойчивость и повысить самооценку. )
|
|||
33
NIGHTHUNTER
16.06.22
✎
09:36
|
(30)(28) Вот так в модуле объекта сделал. Сойдет?
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ЭтотОбъект.ХХХ_Товары.Количество() = 0 Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры |
|||
34
Ryzeman
16.06.22
✎
09:37
|
(32) Ну, с самооценкой у меня и так порядок, мне в целом нравится помогать людям. Тем более я довольно многому сам научился на этом форуме, ещё задолго до того, как зарегался. Но тут же блин реально человек месяцами даже на уровня джуна выйти не может.
|
|||
35
NIGHTHUNTER
16.06.22
✎
09:37
|
(25) Это не совсем актуально. Так как ДатаОтгрузки при создании документа заполняется датой документа. Если потом вот ее стереть. Тогда может.
|
|||
36
Ryzeman
16.06.22
✎
09:37
|
(33) попробуй. У тебя тестовая база есть? Зачем нас то спрашиваешь?) Не получится - спроси.
|
|||
37
NIGHTHUNTER
16.06.22
✎
09:38
|
(35) -> (26)
|
|||
38
Kassern
16.06.22
✎
09:38
|
(33) Ну так проверьте логику работы в тестовой базе. Если устраивает, то "и так сойдет")
|
|||
39
NIGHTHUNTER
16.06.22
✎
09:39
|
(33) Тут не хватает сообщения ещё , сейчас добавлю.
(38) Ок ! |
|||
40
Kassern
16.06.22
✎
09:40
|
(33) В модуле объекта можно напрямую обращаться к реквизитам объекта. Например, для вашего сексшопа можно просто написать ХХХ_Товары.Количество() = 0
|
|||
41
NIGHTHUNTER
16.06.22
✎
10:00
|
(40) Я сделал так.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ЭтотОбъект.ХХХ_Товары.Количество() = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не заполнена табличная часть товары !"; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; КонецПроцедуры Но сейчас как я вижу, не получается удалить документы с пустой табличной частью товары. Это же как то не нормально? |
|||
42
NIGHTHUNTER
16.06.22
✎
10:01
|
(41) Установить пометку удаления не удается.
|
|||
43
Мимохожий Однако
16.06.22
✎
10:01
|
(34) Способность к обучению у всех разная. ТС в режиме аквариумной рыбки. Но он настойчив. Без него многие бы заскучали.
|
|||
44
Kassern
16.06.22
✎
10:01
|
(41) А теперь смотрим на еще один параметр этой процедуры - РежимПроведения)
|
|||
45
Ryzeman
16.06.22
✎
10:01
|
Проверяй на режим проведения.
|
|||
46
Мимохожий Однако
16.06.22
✎
10:02
|
(42) Установка пометки удаления, как и проведение, связана с процедурами ПриЗаписи() и ПередЗаписью().
|
|||
47
Ryzeman
16.06.22
✎
10:02
|
(45) Хотя на самом деле это нормально. Если ты не можешь создавать документы с пустой ТЧ, то их в базе и не должно быть, нечего будет удалять.
|
|||
48
NIGHTHUNTER
16.06.22
✎
10:05
|
(45) (46) А что проверять , как? Подскажите пожалуйста. Как это может помочь, удалить эти документы?
|
|||
49
Kassern
16.06.22
✎
10:09
|
(47) он уже нахерачил таких документов)
|
|||
50
Kassern
16.06.22
✎
10:09
|
(48) Подумайте, пока голова "работает" или погуглите как с этим параметром работать. В отладке гляньте как он заполняется
|
|||
51
NIGHTHUNTER
16.06.22
✎
10:12
|
(49) Думаю как их удалить теперь
|
|||
52
H A D G E H O G s
16.06.22
✎
10:17
|
Я думаю, кто то тренирует нейросетку.
|
|||
53
H A D G E H O G s
16.06.22
✎
10:17
|
Сейчас дотренирует и 80% писателей пойдут работать в вебкам.
|
|||
54
NIGHTHUNTER
16.06.22
✎
10:19
|
Я тут как то могу влиять на пометку удаления?
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ЭтотОбъект.ХХХ_Товары.Количество() = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не заполнена табличная часть товары !"; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; КонецПроцедуры |
|||
55
Ryzeman
16.06.22
✎
10:20
|
(53) Думаешь, пора себя в форму приводить? Там и так конкуренция... Как бы в кладмены не пойти :(
|
|||
56
Kassern
16.06.22
✎
10:22
|
(54) при пометке удаления какое значение принимает параметр РежимПроведения? И какое значение принимает, когда проводите документ?
|
|||
57
NIGHTHUNTER
16.06.22
✎
10:22
|
Я сейчас тогда это закомментирую (54), помечу документы. Пройдясь по ним. А потом верну, продолжу тестирование.
|
|||
58
Выпрь
16.06.22
✎
10:23
|
перед записью на сервере нужно заполнять не объект, а текущийобъект
|
|||
59
NIGHTHUNTER
16.06.22
✎
10:23
|
(56) Пока закомментировал. Я не понимаю, как это может помочь пометить их на удаление.
|
|||
60
NIGHTHUNTER
16.06.22
✎
10:24
|
(58) Заполнять????? Я проверяю заполнение табличной части товары. От заполнения отказался.
|
|||
61
Kassern
16.06.22
✎
10:25
|
(59) пока не попробуете, не поймете
|
|||
62
Kassern
16.06.22
✎
10:26
|
поставьте точку останова в этой процедуре и посмотрите как заполняется параметр при проведении и при пометке удаления. А потом подумайте какое можно условие написать, чтобы давало помечать на удаление с пустой ТЧ
|
|||
63
NIGHTHUNTER
16.06.22
✎
10:29
|
(62) Ясно!!!! Спасибо!!! Я верю, что вы подсказываете, т очто нужно делать. Но сам спешу, и первое что придумал, закомментировать. Не все быстро открывается, по этому уже по этому пути иду. А так взял на заметку.
|
|||
64
NIGHTHUNTER
16.06.22
✎
10:34
|
Там ещё проблема при заполнении табличной части товары выявилась.
Она заполняется по кнопке. И не заполняется, если документ не записан. А документ не записывается с пустой табличной частью товары. Как тут правильно сделать? Замкнутый круг иначе. |
|||
65
NIGHTHUNTER
16.06.22
✎
10:37
|
Получается, не подойдет в данном случае эта проверка.
Как ее записать, если она не будет записываться. Потому что пустая табличная часть товары. |
|||
66
Kassern
16.06.22
✎
10:37
|
(64) "Как тут правильно сделать?" - страдать! Зачем нужно записывать документ при заполнении ТЧ?
|
|||
67
NIGHTHUNTER
16.06.22
✎
10:50
|
(66) Как убрать кнопку записать? Тогда можно было бы пользоваться галкой проверка заполнения выдавать ошибку, табличной части товары?
(66) Дело в том что, эта табличная часть, вторая у документа. И она заполняется по первой табличной части документа. Чем заполнять если документ не записан? |
|||
68
NIGHTHUNTER
16.06.22
✎
10:51
|
Можно ли убрать кнопку записать? Что бы попробовать без нее?
|
|||
69
Мультук
гуру
16.06.22
✎
10:55
|
(68) Просто не нажимай на нее
|
|||
70
NIGHTHUNTER
16.06.22
✎
10:56
|
(69) Я то причем тут? Я что ли пользуюсь.
Убрал ее через состав команд, свойств формы. |
|||
71
NIGHTHUNTER
16.06.22
✎
10:58
|
Я использовал вот такие конструкции, -
ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); По этому документ, должен быть что бы был записан. Иначе то никак же. Вот сейчас пробую кнопку записать убрать. |
|||
72
hhhh
16.06.22
✎
11:09
|
(71) ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка);
это сразу выкинь. пиши ТЗ = Объект.Товары.Выгрузить(); Запрос.УстановитьПараметр("ТЗ", ТЗ); тогда и записывать ничего не надо. |
|||
73
Kassern
16.06.22
✎
11:13
|
(72) вы что! Сейчас еще ТСа учить как с временными таблицами работать?)
|
|||
74
NIGHTHUNTER
16.06.22
✎
11:13
|
(72) А ТЗ, как получу из незаписанного документа?
|
|||
75
Kassern
16.06.22
✎
11:14
|
(74) ТЗ=ТЧ.Выгрузить() - ваш кэп
|
|||
76
Kassern
16.06.22
✎
11:14
|
Или можно из коллекции получить ТЧ и ее прям указать в параметрах запроса
|
|||
77
Мультук
гуру
16.06.22
✎
11:14
|
(72) (73)
Может там и запрос не нужен... нам ведь неизвестно что у него в секретной функции ЗаполнитьНаСервере() |
|||
78
hhhh
16.06.22
✎
11:22
|
(77) если покрутить хрустальный шар, то ведь предельно ясно. ТС заполняет одну табчасть по другой табчасти. И чтобы получить эту табчасть запросом, он записывает документ.
|
|||
79
NIGHTHUNTER
16.06.22
✎
11:23
|
(77)
Если Объект.ХХХ_ВидДокумента = ПредопределенноеЗначение("Перечисление.ХХХ_ВидДокументаВнутреннегоПеремещения.НарядЗадание") Тогда ЗапросОтгруженоЗаказчиком = Новый Запрос; ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоЗаказчиком = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; // ЗапросОтгруженоИсполнителем = Новый Запрос; ЗапросОтгруженоИсполнителем.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоИсполнителем = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоИсполнителем.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоИсполнителем.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоИсполнителем = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоИсполнителем = Новый Массив; КонецЕсли; // ОсновнойЗапрос = Новый Запрос; Если МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() = 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() = 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; КонецЕсли; ИначеЕсли Объект.ХХХ_ВидДокумента = ПредопределенноеЗначение("Перечисление.ХХХ_ВидДокументаВнутреннегоПеремещения.ЭтапПроизводства") Тогда ЗапросОтгруженоЗаказчиком = Новый Запрос; ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ОтгруженоЗаказчиком = ИСТИНА | И ХХХ_ВнутреннееПеремещениеХХХ_Основание.Ссылка = &Ссылка"; ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; // ЗапросОтгруженоИсполнителем = Новый Запрос; ЗапросОтгруженоИсполнителем.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ОтгруженоИсполнителем = ИСТИНА | И ХХХ_ВнутреннееПеремещениеХХХ_Основание.Ссылка = &Ссылка"; ЗапросОтгруженоИсполнителем.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоИсполнителем.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоИсполнителем = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоИсполнителем = Новый Массив; КонецЕсли; // ОсновнойЗапрос = Новый Запрос; Если МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() = 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() = 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; КонецЕсли; КонецЕсли; // ОсновнойЗапрос.УстановитьПараметр("ТекДата", Объект.ХХХ_ДатаОтгрузки); Выборка = ОсновнойЗапрос.Выполнить().Выбрать(); // // <- Объект.ХХХ_Товары.Очистить(); Пока Выборка.Следующий() Цикл НоваяСтрока = Объект.ХХХ_Товары.Добавить(); Если ЗначениеЗаполнено(Выборка.Номенклатура) Тогда НоваяСтрока.Номенклатура = Выборка.Номенклатура; Иначе НоваяСтрока.Номенклатура = Выборка.Комментарий; КонецЕсли; НоваяСтрока.Количество = Выборка.КоличествоСклад; НоваяСтрока.ДатаОтгрузки = Выборка.ДатаСклада; НоваяСтрока.ДокументСсылка = Выборка.ДокументСсылка; КонецЦикла; |
|||
80
NIGHTHUNTER
16.06.22
✎
11:25
|
(72) (78) Да. Вот этот прием, использования табличной части, без записи документа мне нужно выучить!!!
(76) И это тоже интересно! А то делаю как то не по свойственному ((. |
|||
81
Мультук
гуру
16.06.22
✎
11:37
|
(80)
Если ЗначениеЗаполнено(Выборка.Номенклатура) Тогда НоваяСтрока.Номенклатура = Выборка.Номенклатура; Иначе НоваяСтрока.Номенклатура = Выборка.Комментарий; КонецЕсли; Номенклатура в таб.части "ХХХ_Товары" это составное поле? P.S. Что-то новое молодежное? P.P.S. Почему автор не хочет засунуть условие в запрос, сделать в запросе нормальные имена полей и тз = ОсновнойЗапрос.Выполнить().выгрузить(); Объект.ХХХ_Товары.Загрузить(тз); |
|||
82
NIGHTHUNTER
16.06.22
✎
11:54
|
(81) Да поле составного типа, или номенклатура или строка.
Может быть, по условию. Но сейчас я пришел к тому, что нельзя использовать Объект. <- Это. И сейчас вынужден буду применять эти подсказки (72) (78) (76) . Раньше видимо я с этим не сталкивался. Так как редко для документа. выбирают данные самого же документа. Буду рад поддержке. Сейчас моя задача, отказаться от всех конструкций с Объект. , как я понимаю. |
|||
83
hhhh
16.06.22
✎
11:58
|
(82) нет, не нужно отказываться от всех конструкций. От некоторых откажитесь, от остальных не отказывайтесь.
|
|||
84
NIGHTHUNTER
16.06.22
✎
12:20
|
(83) От всех и не получится. Нужно отказаться от них вот в этой процедуре.
Подскажите пожалуйста как сделать правильно? (83) Как сделать что бы вот это работало вне зависимости от того записан документ или нет? &НаСервере Процедура ЗаполнитьНаСервере() Если Не ЕстьДокументыНаПечать() Тогда Возврат; КонецЕсли; Если Объект.ХХХ_ВидДокумента = ПредопределенноеЗначение("Перечисление.ХХХ_ВидДокументаВнутреннегоПеремещения.НарядЗадание") Тогда ЗапросОтгруженоЗаказчиком = Новый Запрос; ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоЗаказчиком = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; // ЗапросОтгруженоИсполнителем = Новый Запрос; ЗапросОтгруженоИсполнителем.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоИсполнителем = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоИсполнителем.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоИсполнителем.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоИсполнителем = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоИсполнителем = Новый Массив; КонецЕсли; // ОсновнойЗапрос = Новый Запрос; Если МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() = 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() = 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_НарядЗадание.ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; КонецЕсли; ИначеЕсли Объект.ХХХ_ВидДокумента = ПредопределенноеЗначение("Перечисление.ХХХ_ВидДокументаВнутреннегоПеремещения.ЭтапПроизводства") Тогда ЗапросОтгруженоЗаказчиком = Новый Запрос; ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ОтгруженоЗаказчиком = ИСТИНА | И ХХХ_ВнутреннееПеремещениеХХХ_Основание.Ссылка = &Ссылка"; ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; // ЗапросОтгруженоИсполнителем = Новый Запрос; ЗапросОтгруженоИсполнителем.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание.ОтгруженоИсполнителем = ИСТИНА | И ХХХ_ВнутреннееПеремещениеХХХ_Основание.Ссылка = &Ссылка"; ЗапросОтгруженоИсполнителем.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоИсполнителем.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоИсполнителем = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоИсполнителем = Новый Массив; КонецЕсли; // ОсновнойЗапрос = Новый Запрос; Если МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() > 0 и МасОтгруженоИсполнителем.Количество() = 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоЗаказчиком", МасОтгруженоЗаказчиком); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоЗаказчиком КАК ХХХ_НарядЗаданиеОтгруженоЗаказчиком |ГДЕ | ХХХ_НарядЗаданиеОтгруженоЗаказчиком.Ссылка В(&МасОтгруженоЗаказчиком) | И ХХХ_НарядЗаданиеОтгруженоЗаказчиком.ДатаСклада = &ТекДата"; ИначеЕсли МасОтгруженоЗаказчиком.Количество() = 0 и МасОтгруженоИсполнителем.Количество() > 0 Тогда ОсновнойЗапрос.УстановитьПараметр("МасОтгруженоИсполнителем", МасОтгруженоИсполнителем); ОсновнойЗапрос.Текст = " |ВЫБРАТЬ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Номенклатура КАК Номенклатура, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Комментарий КАК Комментарий, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.КоличествоСклад КАК КоличествоСклад, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Количество КАК Количество, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада КАК ДатаСклада, | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка КАК ДокументСсылка |ИЗ | Документ.ЭтапПроизводства2_2.ХХХ_ОтгруженоИсполнителем КАК ХХХ_НарядЗаданиеОтгруженоИсполнителем |ГДЕ | ХХХ_НарядЗаданиеОтгруженоИсполнителем.Ссылка В(&МасОтгруженоИсполнителем) | И ХХХ_НарядЗаданиеОтгруженоИсполнителем.ДатаСклада = &ТекДата"; КонецЕсли; КонецЕсли; // ОсновнойЗапрос.УстановитьПараметр("ТекДата", Объект.ХХХ_ДатаОтгрузки); Выборка = ОсновнойЗапрос.Выполнить().Выбрать(); // // <- Объект.ХХХ_Товары.Очистить(); Пока Выборка.Следующий() Цикл НоваяСтрока = Объект.ХХХ_Товары.Добавить(); Если ЗначениеЗаполнено(Выборка.Номенклатура) Тогда НоваяСтрока.Номенклатура = Выборка.Номенклатура; Иначе НоваяСтрока.Номенклатура = Выборка.Комментарий; КонецЕсли; НоваяСтрока.Количество = Выборка.КоличествоСклад; НоваяСтрока.ДатаОтгрузки = Выборка.ДатаСклада; НоваяСтрока.ДокументСсылка = Выборка.ДокументСсылка; КонецЦикла; |
|||
85
NIGHTHUNTER
16.06.22
✎
12:21
|
(72) Как я напишу, если объекта то нет?????? Получается этот пример тоже не подойдет.
|
|||
86
NIGHTHUNTER
16.06.22
✎
12:22
|
(76) Это можно получить у незаписанного документа?
|
|||
87
Мультук
гуру
16.06.22
✎
12:22
|
(85)
Как нет объекта ? Объект есть. В базе его нет, ссылка пустая. А объект и данные в нем есть. |
|||
88
NIGHTHUNTER
16.06.22
✎
12:23
|
То есть вопрос!!!! Как мне сделать выборку по табличной части не записанного документа ?
|
|||
89
NIGHTHUNTER
16.06.22
✎
12:23
|
(87) А вот как. Ясно. То есть нет ссылки, так как незаписан.
Приступаю. |
|||
90
Мультук
гуру
16.06.22
✎
12:23
|
(88) Наконец-то сходить на курсы по 1С?
|
|||
91
NIGHTHUNTER
16.06.22
✎
12:25
|
А как переделать запросы (84) что бы, работало не по ссылке, а по табличной части?
|
|||
93
NIGHTHUNTER
16.06.22
✎
12:28
|
Честно я потерялся, как вот это (84) можно было бы перевести на выполнение когда документ не записан.
Там нужно получить ссылки из первой табливной части. для выборки как я вижу. |
|||
94
NIGHTHUNTER
16.06.22
✎
12:32
|
На сколько я понимаю, перевести на таблицы, без записи документа мне нужно только вот эти запросы. Подскажите пожалуйста по коду (83) ?
ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоЗаказчиком = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; // ЗапросОтгруженоИсполнителем = Новый Запрос; ЗапросОтгруженоИсполнителем.Текст = " |ВЫБРАТЬ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | Документ.ХХХ_ВнутреннееПеремещение.ХХХ_Основание_НарядЗадание КАК ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание |ГДЕ | ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.ОтгруженоИсполнителем = ИСТИНА |И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ЗапросОтгруженоИсполнителем.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоИсполнителем.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоИсполнителем = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоИсполнителем = Новый Массив; КонецЕсли; |
|||
95
NIGHTHUNTER
16.06.22
✎
12:53
|
Так будет? Сам сейчас проверяю.
ЗапросОтгруженоЗаказчиком = Новый Запрос; ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ТЗ_ХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | ТЗ_ХХХ_Основание_НарядЗадание КАК ТЗ_ХХХ_Основание_НарядЗадание |ГДЕ | ТЗ_ХХХ_Основание_НарядЗадание.ОтгруженоЗаказчиком = ИСТИНА //|И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ТЗ_ХХХ_Основание_НарядЗадание = Объект.ХХХ_Основание_НарядЗадание.Выгрузить(); ЗапросОтгруженоЗаказчиком.УстановитьПараметр("ТЗ_ХХХ_Основание_НарядЗадание", ТЗ_ХХХ_Основание_НарядЗадание); // <- ЗапросОтгруженоЗаказчиком.УстановитьПараметр("Ссылка", Объект.Ссылка); Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); Если Не Рез.Пустой() Тогда МасОтгруженоЗаказчиком = Рез.Выгрузить().ВыгрузитьКолонку("ДокументСсылка"); Иначе МасОтгруженоЗаказчиком = Новый Массив; КонецЕсли; |
|||
96
NIGHTHUNTER
16.06.22
✎
13:01
|
Начинаю проверять (95), подскажите, верно ли это по сравнению с (84) ?
|
|||
97
Мультук
гуру
16.06.22
✎
13:03
|
(96)
Прошло 10 мин. Как результаты, что сказала 1С ? |
|||
98
NIGHTHUNTER
16.06.22
✎
13:06
|
(97) Да пока, то кавычки пропустил, то точки забыл, перезапускаюсь все.
|
|||
99
Ёпрст
16.06.22
✎
13:18
|
(95) это пять, да!
Выкинь это и не позорься. |
|||
100
Ёпрст
16.06.22
✎
13:20
|
только под этим ником, Ливингстар 2 года че-то где-то кодит, и простейшие вещи не понимает.
Мот ну его, эту 1с-ину ? И бегом в военкомат, за контрактом и на сво ? |
|||
101
NIGHTHUNTER
16.06.22
✎
13:22
|
на Рез = ЗапросОтгруженоЗаказчиком.Выполнить();
{(5, 2)}: Таблица не найдена "ТЗ_ХХХ_Основание_НарядЗадание" <<?>>ТЗ_ХХХ_Основание_НарядЗадание КАК ТЗ_ХХХ_Основание_НарядЗадание {Документ.ХХХ_ВнутреннееПеремещение.Форма.ФормаДокумента.Форма(664)}: Рез = ЗапросОтгруженоЗаказчиком.Выполнить(); {Документ.ХХХ_ВнутреннееПеремещение.Форма.ФормаДокумента.Форма(638)}: ЗаполнитьНаСервере(); по причине: {(5, 2)}: Таблица не найдена "ТЗ_ХХХ_Основание_НарядЗадание" <<?>>ТЗ_ХХХ_Основание_НарядЗадание КАК ТЗ_ХХХ_Основание_НарядЗадание |
|||
102
NIGHTHUNTER
16.06.22
✎
13:23
|
(101+) Это выгрузилось ТЗ_ХХХ_Основание_НарядЗадание
Почему что то не так? Как нужно? |
|||
103
NIGHTHUNTER
16.06.22
✎
13:24
|
Что тут не так, подскажите пожалуйста
ЗапросОтгруженоЗаказчиком.Текст = " |ВЫБРАТЬ | ТЗ_ХХХ_Основание_НарядЗадание.ДокументСсылка КАК ДокументСсылка |ИЗ | ТЗ_ХХХ_Основание_НарядЗадание КАК ТЗ_ХХХ_Основание_НарядЗадание |ГДЕ | ТЗ_ХХХ_Основание_НарядЗадание.ОтгруженоЗаказчиком = ИСТИНА //|И ХХХ_ВнутреннееПеремещениеХХХ_Основание_НарядЗадание.Ссылка = &Ссылка"; ТЗ_ХХХ_Основание_НарядЗадание = Объект.ХХХ_Основание_НарядЗадание.Выгрузить(); ЗапросОтгруженоЗаказчиком.УстановитьПараметр("ТЗ_ХХХ_Основание_НарядЗадание", ТЗ_ХХХ_Основание_НарядЗадание); |
|||
104
Ёпрст
16.06.22
✎
13:32
|
(102) Нужно взять военный билет или приписное свидетельство и бегом в военкомат, там от тебя больше пользы. Раз ты за 2 года не смог понять примитивные вещи и как передать в запрос таблицу значений.
|
|||
105
Ryzeman
16.06.22
✎
13:34
|
(104) Там возможно ни в 1с ни в красную армию, как говорится...
|
|||
106
Ёпрст
16.06.22
✎
13:37
|
(105) Ну, может договорится в военкомате полы мыть, хотя бы, или в армейке плац подметать
|
|||
107
Kassern
16.06.22
✎
13:45
|
(106) Я вот держу метлу и не понимаю как подметать, голова, что-то не работает уже. Посмотрите я правильно делаю? https://cdn.trinixy.ru/pics4/20110602/china_08.jpg
|
|||
108
Kassern
16.06.22
✎
13:46
|
Интересно, сколько лет ТСу?
|
|||
109
NIGHTHUNTER
16.06.22
✎
14:05
|
Что тут может быть не так?
ТЗ_ХХХ_Основание_НарядЗадание = новый ТаблицаЗначений; ТЗ_ХХХ_Основание_НарядЗадание.Колонки.Добавить("ДокументСсылка", Новый ОписаниеТипов("ДокументСсылка.ХХХ_НарядЗаказ")); |
|||
110
NIGHTHUNTER
16.06.22
✎
14:07
|
что тут не так?
Недопустимое значение параметра (параметр номер '1') (ДокументСсылка.ХХХ_НарядЗаказ) {Документ.ХХХ_ВнутреннееПеремещение.Форма.ФормаДокумента.Форма(669)}: ТЗ_ХХХ_Основание_НарядЗадание.Колонки.Добавить("ДокументСсылка", Новый ОписаниеТипов("ДокументСсылка.ХХХ_НарядЗаказ")); {Документ.ХХХ_ВнутреннееПеремещение.Форма.ФормаДокумента.Форма(638)}: ЗаполнитьНаСервере(); по причине: Недопустимое значение параметра (параметр номер '1') (ДокументСсылка.ХХХ_НарядЗаказ) |
|||
111
Kassern
16.06.22
✎
14:08
|
(110) один вопрос, зачем?
|
|||
112
Kassern
16.06.22
✎
14:08
|
откройте СП и почитайте, что нужно передавать в ОписаниеТипов()
|
|||
113
NIGHTHUNTER
16.06.22
✎
14:10
|
(111) нашел почему нужно ХХХ_НарядЗадание, пробую снова ...
|
|||
114
hhhh
16.06.22
✎
17:40
|
(113) где у тебя параметр в твоем запросе? типа
ИЗ &ТЗ КАК ТЗ |
|||
115
H A D G E H O G s
16.06.22
✎
17:41
|
(100) Не надо. Пусть он тут сидит на шее работодателя, чем там подставит ребят.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |