Имя: Пароль:
1C
1С v8
Внутренняя перепродажа
0 Legachi26
 
09.11.15
09:58
Приветствую уважаемые! Ну выручайте неграмотного, делаю автоматическое создание ПоступленияТоваровИУслуг из РеализацииТИУ, дошел до момента который не могу ни как понять, делаю следующий запрос:
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Организация", ПосТИУ.Организация);
    Запрос.УстановитьПараметр("Бухгалтер", Перечисления.ОтветственныеЛицаОрганизации.ГлавныйБухгалтер);
    Запрос.УстановитьПараметр("Руководитель", Перечисления.ОтветственныеЛицаОрганизации.Руководитель);    
    Запрос.Текст =  "ВЫБРАТЬ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо КАК Должность,
                    |    Пользователи.Ссылка КАК ФИО
                    |ИЗ
                    |    РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних КАК ОтветственныеЛицаОрганизацииСрезПоследних
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
                    |        ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = Пользователи.ФизЛицо
                    |ГДЕ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница = &Организация
                    |    И ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо = &Бухгалтер
                    |    И НЕ Пользователи.Ссылка ЕСТЬ NULL
                    |
                    |ОБЪЕДИНИТЬ ВСЕ
                    |
                    |ВЫБРАТЬ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
                    |    Пользователи.Ссылка
                    |ИЗ
                    |    РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних КАК ОтветственныеЛицаОрганизацииСрезПоследних
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
                    |        ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = Пользователи.ФизЛицо
                    |ГДЕ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница = &Организация
                    |    И ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо = &Руководитель
                    |
                    |СГРУППИРОВАТЬ ПО
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    Пользователи.Ссылка,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо";
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Если НЕ Выборка.Следующий() = Неопределено тогда
        
          ПосТИУ.Ответственный = Выборка.ФИО;
            
    КонецЕсли;        

так я хочу вставить в ПоступлениеТИУ ответственного, но мне не понятно почему ответственный переносится из РеализацииТИУ, куда смотреть?
1 zak555
 
09.11.15
09:59
что за конфа ?
2 Legachi26
 
09.11.15
09:59
ут 10.3
3 zak555
 
09.11.15
10:00
РТиУ делаешь на основании ПТиУ ?
4 Legachi26
 
09.11.15
10:01
Наоборот
5 Legachi26
 
09.11.15
10:02
Я хочу реализовать что бы при проведении РТиУ попутно проходило проведение ПТиУ
6 Legachi26
 
09.11.15
10:03
Процедура ПереносДанныхВПостТИУ()         
    
    ПосТИУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    РеализацяТИУ = ЭтотОбъект;                                        
        
    Если ПерепродажаМеждуОрганизациями() = Истина тогда //Проверяем если перепроджа
        
    ПосТИУ.Заполнить(Ссылка);
    
    ОрганизацияКонтрагента = ЗаполнениеДокументов.ПолучитьОрганизациюПоКонтрагенту(Контрагент);
    
    Если ЗначениеЗаполнено(ОрганизацияКонтрагента) Тогда
        // Документ не отражается в управленческом учете (внутреняя передача товара),
        // поменяем организацию и контрагента местами.
        ПосТИУ.Организация = ОрганизацияКонтрагента;
        ПосТИУ.Контрагент  = ЗаполнениеДокументов.ПолучитьКонтрагентаПоОрганизации(Организация);
        
        // Заполним номер и дату вхоящего документа.
        ПосТИУ.НомерВходящегоДокумента = Номер;
        ПосТИУ.ДатаВходящегоДокумента  = Дата;
        
    КонецЕсли;

            
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Организация", ПосТИУ.Организация);
    Запрос.УстановитьПараметр("Бухгалтер", Перечисления.ОтветственныеЛицаОрганизации.ГлавныйБухгалтер);
    Запрос.УстановитьПараметр("Руководитель", Перечисления.ОтветственныеЛицаОрганизации.Руководитель);    
    Запрос.Текст =  "ВЫБРАТЬ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо КАК Должность,
                    |    Пользователи.Ссылка КАК ФИО
                    |ИЗ
                    |    РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних КАК ОтветственныеЛицаОрганизацииСрезПоследних
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
                    |        ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = Пользователи.ФизЛицо
                    |ГДЕ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница = &Организация
                    |    И ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо = &Бухгалтер
                    |    И НЕ Пользователи.Ссылка ЕСТЬ NULL
                    |
                    |ОБЪЕДИНИТЬ ВСЕ
                    |
                    |ВЫБРАТЬ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
                    |    Пользователи.Ссылка
                    |ИЗ
                    |    РегистрСведений.ОтветственныеЛицаОрганизации.СрезПоследних КАК ОтветственныеЛицаОрганизацииСрезПоследних
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
                    |        ПО ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо = Пользователи.ФизЛицо
                    |ГДЕ
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница = &Организация
                    |    И ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо = &Руководитель
                    |
                    |СГРУППИРОВАТЬ ПО
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ОтветственноеЛицо,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.СтруктурнаяЕдиница,
                    |    Пользователи.Ссылка,
                    |    ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо";
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Если НЕ Выборка.Следующий() = Неопределено тогда
        
          ПосТИУ.Ответственный = Выборка.ФИО;
            
    КонецЕсли;        
            
            
            

    ПосТИУ.ПолучитьФорму().Открыть();
        
    
    
    
    
    
    Если Проведен тогда
            ПосТИУ.Записать(РежимЗаписиДокумента.Запись, РежимПроведенияДокумента.Неоперативный)
    КонецЕсли;

        
    
    
    
    
    
    КонецЕсли;
    
    
КонецПроцедуры
7 Legachi26
 
09.11.15
10:03
На данный момент вот такая процедура
8 Legachi26
 
09.11.15
10:08
т.е. я использую стандартные механизмы для заполнения а далее пере заполняю их на свой лад и вот встал на ответственном, запросом все выгружается вроде бы правильно, но не могу понять почему подставляется значение не из выборки а из стандартного механизма, ведь в условии я его переназначаю:  

Если НЕ Выборка.Следующий() = Неопределено тогда
        
          ПосТИУ.Ответственный = Выборка.ФИО;
            
КонецЕсли;
9 mistеr
 
09.11.15
10:12
(0)  1. Во втором запросе нет проверки на NULL
2. Зачем два запроса, когда достаточно одного + ОтветственноеЛицо В (&Бухгалтер, &Руководитель)
3. Зачем запрос выбирает двоих, когда нужен только один?
4. В Ответственный должен ставиться текущий пользователь вообще-то, а не "лишь бы кто-нибудь".
10 mistеr
 
09.11.15
10:14
(6) Ужас. Есть же создание на основании, зачем велосипедить?
11 andrewrocker
 
09.11.15
10:15
Недавно с этим копался, делаю обработку продажа собственной фирме
12 RomanYS
 
09.11.15
10:18
(8) Выборка.Следующий() возвращает булево и никогда "Неопределено", итого в в твоем если всегда "ложь"
13 RomanYS
 
09.11.15
10:19
*(12) всегда "истина", даже когда выборка пустая
14 RomanYS
 
09.11.15
10:21
(6) перезаполнение идет при открытии формы, если ты сначала запишешь документ, то он не буде перезаполняться
15 User_Agronom
 
09.11.15
10:32
(0) Продам отладчик.
Очень дорого.
Но возможность получать точные ответы на самые глупые вопросы того стоит.
16 Legachi26
 
09.11.15
10:39
Двое нужны на случай если один из них к примеру не предусмотрен или пустой, а в Ответственный была поставлена задача ставить из регистра ОтветственныхЛицПоОрганизации
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс