|
Как получить объект по ссылке из запроса | ☑ | ||
---|---|---|---|---|
0
ultrannge89
04.02.14
✎
14:51
|
Имеется запрос простенький запрос:
ВЫБРАТЬ ПриемНаРаботуВОрганизациюРаботникиОрганизации.ФизЛицо, ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Организация ПОМЕСТИТЬ ПриемНаРаботу ИЗ Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации ГДЕ ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Ссылка = &ДокССылка И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Проведен = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1 ЗаявкаНаОткрытиеСчетов.Организация, ЗаявкаНаОткрытиеСчетов.Дата, ЗаявкаНаОткрытиеСчетов.Ссылка ПОМЕСТИТЬ НеВыгруженнаяЗаявка ИЗ Документ.ЗаявкаНаОткрытиеСчетов КАК ЗаявкаНаОткрытиеСчетов ГДЕ ЗаявкаНаОткрытиеСчетов.ПометкаУдаления = ЛОЖЬ И ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Ссылка = &БанковскийСчет И ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Банк.Ссылка = &Банк И ПОДСТРОКА(ЗаявкаНаОткрытиеСчетов.Комментарий, 0, 6) = &Комментарий УПОРЯДОЧИТЬ ПО ЗаявкаНаОткрытиеСчетов.Дата УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПриемНаРаботу.ФизЛицо, НеВыгруженнаяЗаявка.Дата, НеВыгруженнаяЗаявка.Ссылка ИЗ ПриемНаРаботу КАК ПриемНаРаботу ЛЕВОЕ СОЕДИНЕНИЕ НеВыгруженнаяЗаявка КАК НеВыгруженнаяЗаявка ПО ПриемНаРаботу.Организация = НеВыгруженнаяЗаявка.Организация И простое условие: Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать().Следующий(); СсылкаНаДокумент = Выборка.Ссылка; НовыйДокумент = СсылкаНаДокумент.ПолучитьОбъект(); НовыйДокумент.Дата = Дата; Иначе НовыйДокумент = Документы.ЗаявкаНаОткрытиеСчетов.СоздатьДокумент(); НовыйДокумент.Дата = Дата; КонецЕсли; НовыйДокумент.Организация = Справочники.Организации.НайтиПоКоду("000000002"); НовыйДокумент.Банк = Справочники.Контрагенты.НайтиПоНаименованию(СокрЛП("Банк для перечисления зарплаты на карточки")); НовыйДокумент.БанковскийСчет = Справочники.БанковскиеСчета.НайтиПоНаименованию("Зарплатный"); НовыйДокумент.НомерДоговора = "72276141"; НовыйДокумент.Комментарий = "Создан "+ НовыйДокумент.Дата; Для Каждого Строка из РаботникиОрганизации Цикл НоваяСтрока = НовыйДокумент.РаботникиОрганизации.Добавить(); НоваяСтрока.ФизЛицо = Строка.ФизЛицо; ДанныеТекущегоРаботникаОрганизации = Новый Структура("ФизЛицо,ЭмбоссированныйТекст1,ЭмбоссированныйТекст2,ЭмбоссированныйТекст3,КодМиграционногоДокумента,НомерМиграционногоДокумента,Резидент,Гражданство,Должность"); ДанныеТекущегоРаботникаОрганизации.Вставить("ФизЛицо", Строка.ФизЛицо); ДанныеТекущегоРаботникаОрганизации = ЗаполнитьСтрокуПоФизическомуЛицу(ДанныеТекущегоРаботникаОрганизации); НоваяСтрока.ЭмбоссированныйТекст1 = ДанныеТекущегоРаботникаОрганизации.ЭмбоссированныйТекст1; НоваяСтрока.ЭмбоссированныйТекст2 = ДанныеТекущегоРаботникаОрганизации.ЭмбоссированныйТекст2; НоваяСтрока.ЭмбоссированныйТекст3 = ДанныеТекущегоРаботникаОрганизации.ЭмбоссированныйТекст3; НоваяСтрока.Резидент = ДанныеТекущегоРаботникаОрганизации.Резидент; НоваяСтрока.Гражданство = ДанныеТекущегоРаботникаОрганизации.Гражданство; НоваяСтрока.Должность = ДанныеТекущегоРаботникаОрганизации.Должность; НоваяСтрока.КодМиграционногоДокумента = ДанныеТекущегоРаботникаОрганизации.КодМиграционногоДокумента; НоваяСтрока.НомерМиграционногоДокумента = ДанныеТекущегоРаботникаОрганизации.НомерМиграционногоДокумента; КонецЦикла; //НовыйДокумент.Записать(); Объект = НовыйДокумент.ПолучитьФорму("ФормаДокумента"); Объект.Открыть(); Ругается на это: СсылкаНаДокумент = Выборка.Ссылка; НовыйДокумент = СсылкаНаДокумент.ПолучитьОбъект(); Как будет правильнее получить по ссылке объект, чтобы потом его изменить? Дело в том что я бы мог и без запроса, но мне надо проверить есть ли документ со строкой "Создан" в поле комментарий, если есть то не создавать новый документ а загрузить данные в существующий. |
|||
1
Maxus43
04.02.14
✎
14:53
|
у тебя получается
"Истина".ПолучиьтОбъект(); отладчик смотри... |
|||
2
Maxus43
04.02.14
✎
14:54
|
Выборка = Результат.Выбрать();
Выборка.Следующий(); |
|||
3
ultrannge89
04.02.14
✎
14:54
|
Блин)))
|
|||
4
КРТЩ
04.02.14
✎
14:58
|
к тому же у тебя левое соединение в запросе, а проверки на NULL нету
|
|||
5
Maxus43
04.02.14
✎
15:02
|
>>ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Ссылка = &ДокССылка
неправильно написал, надо ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка.Ссылка |
|||
6
КРТЩ
04.02.14
✎
15:04
|
(5) XD
|
|||
7
zak555
04.02.14
✎
15:05
|
зачем ЗаявкаНаОткрытиеСчетов?
|
|||
8
ultrannge89
04.02.14
✎
18:08
|
(7) Просто решил упростить задачу кадровикам по формированию списков в сбербанк... Сначала выгружаю из приема на работу списки в заявки. И раз в неделю запускаю обработку которая обрабатывает их и создает xml файл.
|
|||
9
Maxus43
04.02.14
✎
18:51
|
>>задачу кадровикам по формированию списков в сбербанк
т.е. типовые обработки вас не устраивают? |
|||
10
Maxus43
04.02.14
✎
18:52
|
в УПП это ИмпортЭкспортОперацийПоЛицевымСчетамРаботников, сиречь "Операции с лицевыми счетами сотрудников"
|
|||
11
ultrannge89
04.02.14
✎
20:14
|
Типовые и правлю, просто чуть охото поудобней сделать, попроще... Например хочу чтобы в документе приема по кнопочке создавался лицевой счет в заявке с комментарием создан +датасоздания, если уже имеется созданный то просто дописывался в текущий документ. При выгрузке обработкой ИпортЭкспортОперацийПоЛС, формируется на каждый документ свой файл, тоесть получается что вммеесто того чтобы получить 100 документов у меня будет 1. И если файл успешно создан в комментарий к нему пишется выгружен + датавыгрузки и уже соответственно не обрабатывается.
|
|||
12
ultrannge89
04.02.14
✎
20:20
|
Блин странная фигня.
Запрос.Текст ="ВЫБРАТЬ ПЕРВЫЕ 1 | ЗаявкаНаОткрытиеСчетов.Ссылка, | ЗаявкаНаОткрытиеСчетов.Дата |ИЗ | Документ.ЗаявкаНаОткрытиеСчетов КАК ЗаявкаНаОткрытиеСчетов |ГДЕ | ЗаявкаНаОткрытиеСчетов.ПометкаУдаления = ЛОЖЬ | И ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Ссылка = &БанковскийСчет | И ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Банк.Ссылка = &Банк | И ПОДСТРОКА(ЗаявкаНаОткрытиеСчетов.Комментарий, 0, 6) = ""Создан"" | |УПОРЯДОЧИТЬ ПО | ЗаявкаНаОткрытиеСчетов.Дата УБЫВ"; БанковскийСчет = Справочники.БанковскиеСчета.НайтиПоНаименованию("Зарплатный"); Банк = Справочники.Контрагенты.НайтиПоНаименованию("Банк для перечисления зарплаты на карточки"); Запрос.УстановитьПараметр("БанковскийСчет", БанковскийСчет); Запрос.УстановитьПараметр("Банк", Банк); Результат = Запрос.Выполнить(); Почему-то не проходит проверку на пустоту Результата Хотя в консоле все отлично. |
|||
13
ultrannge89
04.02.14
✎
20:42
|
Ладно пойду спать, со свежей головы может врублюсь где накасячил.
|
|||
14
hhhh
04.02.14
✎
20:44
|
(12) ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Банк.Ссылка = &Банк
будет в 215 раз медленнее работать, чем ЗаявкаНаОткрытиеСчетов.БанковскийСчет.Банк = &Банк думаешь кадровики обрадуются, если у них обработка будет в 215 раз медленнее работать? |
|||
15
ultrannge89
05.02.14
✎
05:56
|
И правда, утром думается легче...
Заменил параметр на Банк = Справочники.Банки.НайтиПоРеквизиту("КоррСчет", "ххххххххххххххх"); А было Банк = Справочники.Контрагенты.найтипонаименованию("блаблабла"); |
|||
16
rphosts
05.02.14
✎
06:08
|
(0)>ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Проведен = ИСТИНА
и >ЗаявкаНаОткрытиеСчетов.ПометкаУдаления = ЛОЖЬ это плохой стиль! (15) всё получилось? |
|||
17
Wobland
05.02.14
✎
06:09
|
(16) это для отчётности не годно
|
|||
18
rphosts
05.02.14
✎
06:13
|
(17) что у него не получилось?
|
|||
19
Wobland
05.02.14
✎
06:20
|
(18) спасибо сказать у него не получилось. а так вроде всё хорошо
|
|||
20
ultrannge89
05.02.14
✎
06:32
|
Спасибо)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |