|   |   | 
| 
 | Как получить объект по ссылке из запроса | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Спасибо)))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |