|
Проведение документа и отражение по регистру | ☑ | ||
---|---|---|---|---|
0
Смертник
24.12.12
✎
15:54
|
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ру_ОтгрузкаФактТариф Движения.ру_ОтгрузкаФактТариф.Записывать = Истина; Движения.ру_ОтгрузкаФактТариф.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ру_ЖДКвитанцияВагоны.Ссылка.Грузоотправитель КАК ГрузоотправительГл, | ру_ЖДКвитанцияВагоны.Ссылка.Грузополучатель КАК Грузополучатель, | ру_ЖДКвитанцияВагоны.Ссылка.Номенклатура КАК Номенклатура, | ру_ЖДКвитанцияВагоны.Ссылка.Покупатель КАК Покупатель, | ру_ЖДКвитанцияВагоны.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента, | ру_ЖДКвитанцияВагоны.Ссылка.Заказ КАК Заказ, | ру_ЖДКвитанцияВагоны.Ссылка.Количество КАК Количество |ИЗ | Документ.ру_ЖДКвитанция.Вагоны КАК ру_ЖДКвитанцияВагоны | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ру_ПодтверждениеЖДТарифа.Вагоны КАК ру_ПодтверждениеЖДТарифаВагоны | ПО ру_ЖДКвитанцияВагоны.НомерВагона = ру_ПодтверждениеЖДТарифаВагоны.НомерВагона | И ру_ЖДКвитанцияВагоны.Ссылка = ру_ПодтверждениеЖДТарифаВагоны.Ссылка.ДокументОснование |ГДЕ | ру_ПодтверждениеЖДТарифаВагоны.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка); ТЗ= Запрос.Выполнить().Выгрузить(); Для Каждого ТекСтрокаВагоны Из Вагоны Цикл Движение = Движения.ру_ОтгрузкаФактТариф.Добавить(); Движение.Период = Дата; Движение.СтанцияОтправления = ТекСтрокаВагоны.СтанцияОтправления; Движение.СтанцияНазначения = ТекСтрокаВагоны.СтанцияНазначения; Движение.НомерВагона = ТекСтрокаВагоны.НомерВагона; Движение.Собственник = ТекСтрокаВагоны.Собственник; Движение.ОператорПС = ТекСтрокаВагоны.ОператорПС; Движение.ДатаОтгрузки = ТекСтрокаВагоны.ДатаОтгрузки; Движение.Грузоподъемность = ТекСтрокаВагоны.Грузоподъемность; Движение.ЖДТариф = ТекСтрокаВагоны.ЖДТарифБезНДС; Движение.Грузоотправитель = ТЗ.ГрузоотправительГл; Движение.Грузополучатель = ТЗ.Грузополучатель; Движение.Номенклатура = ТЗ.Номенклатура; Движение.Покупатель = ТЗ.Покупатель; Движение.ДоговорКонтрагента = ТЗ.ДоговорКонтрагента; Движение.Заказ = ТЗ.Заказ; Движение.Количество = ТЗ.Количество; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Щапросом беру реквизиты которых нет в самом документе, но есть в документе основании. И не пойму почему не находит реквизиты их запроса, а именно застрял на этом - Движение.Грузоотправитель = ТЗ.ГрузоотправительГл; |
|||
1
GROOVY
24.12.12
✎
15:58
|
Позиционироваться на результате запроса кто будет?
Кстати, не рекомендуется выгрузка в ТЗ результата для получения единственной строки, лучше выборку делать. |
|||
2
Deon
24.12.12
✎
16:00
|
(1) О, а не объяснишь, почему?
|
|||
3
Deon
24.12.12
✎
16:00
|
(0) Семерочник?
|
|||
4
Starhan
24.12.12
✎
16:01
|
потому что в памяти меньшее места занимает.
в выборке на тек момент хранятся данные ток текущей строки, а в тз все данные скопом. техническим языком объяснять не умею :( |
|||
5
Смертник
24.12.12
✎
16:06
|
(1) в смысле позиуироваться?
|
|||
6
Deon
24.12.12
✎
16:07
|
(4) Так все равно 1 строка, что так, что эдак
|
|||
7
Смертник
24.12.12
✎
16:08
|
не строк много там надо выбрать просто он в первую утыкается и дает ошибку
|
|||
8
Галахад
гуру
24.12.12
✎
16:08
|
(5) Выгружаешь в ТЗ, а перебираешь Вагоны....
|
|||
9
Deon
24.12.12
✎
16:09
|
(5) В смысле ТЗ - это таблица значений, а в Движение.Грузоотправитель = ТЗ.ГрузоотправительГл; вместо ТЗ должна идти переменная строки ТЗ.
типа: СтрТЗ = ТЗ[0]; Движение.Грузоотправитель = СтрТЗ.ГрузоотправительГл; |
|||
10
Deon
24.12.12
✎
16:09
|
(9) Ток ты так не делай, это я для примера
|
|||
11
zladenuw
24.12.12
✎
16:10
|
(0) лучше название колонок как в документе реквизиты и
ЗАполнитьЗначениеСвойств |
|||
12
Галахад
гуру
24.12.12
✎
16:11
|
(6) А если в документе 1000 сток?
|
|||
13
Starhan
24.12.12
✎
16:13
|
(6)
Можно попробовать замерить обход по строкам и там и там но мне лень :) |
|||
14
Deon
24.12.12
✎
16:13
|
(12) Да, не обратил внимания, что в (0) запрос тянет все строки. Я про ситуацию, когда запрос в любом случае вернет 1 строку, что использовать, выборку или выгрузку?
|
|||
15
Смертник
24.12.12
✎
16:14
|
названия и так соответствуют именам колонок в доке основании
|
|||
16
zladenuw
24.12.12
✎
16:14
|
(15) обманщик (0) Движение.Грузоотправитель = ТЗ.ГрузоотправительГл;
|
|||
17
Смертник
24.12.12
✎
16:16
|
Это я сделал чтобы посмотреть на что ругается, а так там Грузоотправитель
|
|||
18
Serg_1960
24.12.12
✎
16:16
|
Хитровывернутый запрос, не осилил. Но хочу сказать: когда-нибудь он сработает и взорвется - автор будет иметь бледный вид от испуга :)
|
|||
19
Галахад
гуру
24.12.12
✎
16:17
|
(14) Наверное пофиг. Хотя лучше однообразно делать...
|
|||
20
Смертник
24.12.12
✎
16:17
|
если подскажите как написать по другому запрос к доку основания буду благодарен
|
|||
21
Alexaha
24.12.12
✎
16:21
|
(20) запрос пиши так что бы у тебя в результат получался готовый набор записей
чтобы в итоге можно было написать НаборЗаписей.Загрузить(Запрос.Выполнить().Выгрузить()) |
|||
22
zladenuw
24.12.12
✎
16:21
|
(21) ну это вообще по феншуЮ :)
|
|||
23
Галахад
гуру
24.12.12
✎
16:23
|
Не понимаю, почему программист должен кого-то материть?
Ну кроме начальника. Матерят, как правило из-за несбывшихся ожиданий. А какие ожидания от пользователей или коллег. |
|||
24
Галахад
гуру
24.12.12
✎
16:25
|
Хм. Акела промахнулся..
|
|||
25
Deon
24.12.12
✎
16:26
|
(24) Не переживай, я и ту ветку параллельно читаю, так что нормально
|
|||
26
Serg_1960
24.12.12
✎
16:32
|
(0) Или я ничего не понимаю в мясных обрезках, или ТС нужно:
"ВЫБРАТЬ | Квитанция.Грузоотправитель КАК ГрузоотправительГл, | Квитанция.Грузополучатель КАК Грузополучатель, | Квитанция.Номенклатура КАК Номенклатура, | Квитанция.Покупатель КАК Покупатель, | Квитанция.ДоговорКонтрагента КАК ДоговорКонтрагента, | Квитанция.Заказ КАК Заказ, | Квитанция.Количество КАК Количество |ИЗ | Документ.ру_ЖДКвитанция КАК Квитанция |ГДЕ | Квитанция.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.ДокументОснование); |
|||
27
Смертник
24.12.12
✎
16:41
|
это сработает если делается на основании ввод а если строки заполнены путем добавления?
|
|||
28
Serg_1960
24.12.12
✎
16:51
|
(27) Тогда это противоречит запросу, ибо там ты при соединении используешь "...И ру_ЖДКвитанцияВагоны.Ссылка = ру_ПодтверждениеЖДТарифаВагоны.Ссылка.ДокументОснование"
|
|||
29
Смертник
24.12.12
✎
16:57
|
так я добавляю движение тоже по ЖД Квитанции - просто выбираю какие надо документы и добавляю
|
|||
30
Смертник
24.12.12
✎
17:05
|
и как тогда правильно строить запрос?
|
|||
31
Serg_1960
24.12.12
✎
17:16
|
Насколько я понимаю, "НомерВагона" не является уникальным значением и не может являться "самодостаточным" для соединения в документе, у которого не указано основание.
И второе: если документ заполнен не "по основанию", тогда можно предположить, что "оснований" может быть несколько. Не зная твою конфу, могу только предположить: вероятно в ТЧ есть "Номенклатура" и "Заказ" - вот по ним возможно соединение. Вероятно. |
|||
32
Смертник
24.12.12
✎
17:21
|
в подтверждении нет ни заказа ни номенклатуры
|
|||
33
Смертник
24.12.12
✎
17:22
|
есть номер вагона и те поля которые указаны при заполнении
|
|||
34
sidalexsandr
24.12.12
✎
17:36
|
Для каждого ТаблЗнач Из ТЗ Цикл
// Вот так получить значение из таблицы значений ТаблЗнач.ТЗ.Грузоотправитель КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |