Имя: Пароль:
1C
 
Создается пустая операция при перегрузке!
0 Мисти
 
16.04.16
21:23
Уже голову сломала, не знаю, где еще копать.
1 Мисти
 
16.04.16
21:23
Функция     ПерегрузитьВОперацию000(Док7,Перезаписывать)
    Док8 = БазаОле.Документы.ОперацияБух;
    
    Если Док7.Вид() = "ПередачаПрав" Тогда
        Номер8 =  СоздатьНомер8(Док7.НомерДок,6,"ПП-");
    Иначе
        Номер8 =  СоздатьНомер8(Док7.НомерДок,6,"ОО-");
        Сообщить("Другой вид "+ Док7.Вид());
    КонецЕсли;
    
    ТекДок = Док8.НайтиПоНомеру(Номер8,Док7.ДатаДок);
    Если СокрЛП(ТекДок.Номер) = "" Тогда
        Док8        =  БазаОле.Документы.ОперацияБух.СоздатьДокумент();
        Док8.Номер  =  Номер8;
        Док8.Дата        = Док7.ДатаДок;
    Иначе
        Док8 = ТекДок.ПолучитьОбъект();
    КонецЕсли;
    Движение = Док8.Движения.Хозрасчетный;  
    Движение.Очистить();    
    
    Док8.Организация = БазаОле.Справочники.Организации.ОрганизацияПоУмолчанию();
    Док8.Комментарий = ""+Док7.Комментарий+ "# Перенесено из 1С:Бухгалтерии 7.7 # Передача прав"+Док7.НомерДок+" от "+ Док7.ДатаДок +"#";
    Движение.Записывать = 1;
    //Док8.Записать();
    
    РегРасчеты          = СоздатьОбъект("Регистр.РасчетыСПоставщиками");
    РегРасчеты.ВыбратьДвиженияДокумента(Док7);
    //КолСтрок =    РегРасчеты.КоличествоСтрок()/2;
    //Для  ии =1  по КолСтрок Цикл
    НомСтроки = 0;
    Пока РегРасчеты.ПолучитьДвижение()=1 Цикл
        Если РегРасчеты.НомерСтроки()<> НомСтроки Тогда
            СтрБух = Движение.Добавить();
            СтрБух.Организация = БазаОле.Справочники.Организации.ОрганизацияПоУмолчанию();
            СтрБух.Период = Док7.ДатаДок;
            СтрБух.ПодразделениеДт = БазаОле.Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение");
            СтрБух.ПодразделениеКт = БазаОле.Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("Основное подразделение");
            СтрБух.СчетДт =         БазаОле.ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
            СтрБух.СчетКт =         БазаОле.ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
            СтрБух.СуммаНУДт =  РегРасчеты.Долг;
            СтрБух.СуммаНУКт =  РегРасчеты.Долг;
            СтрБух.Сумма =  РегРасчеты.Долг;
            Сумма = Сумма+  СтрБух.Сумма;
            НомСтроки =  РегРасчеты.НомерСтроки();
        КонецЕсли;
        
        //РегРасчеты.ПолучитьДвижение();
        Если РегРасчеты.Приход = 1 Тогда  
            ТекСумма = РегРасчеты.Долг;    
            
            КонтрЭлД =  БазаОле.Справочники.Контрагенты.НайтиПоКоду(РегРасчеты.Контрагент.Код);
            Если СокрЛП(КонтрЭлД.Код) = ""  Тогда  
                КонтрЭлД     = СоздатьИЗаполнитьКонтрагента(РегРасчеты.Контрагент);                 
            КонецЕсли;
            ДоговорЭлД       = БазаОле.Справочники.ДоговорыКонтрагентов.НайтиПоКоду(РегРасчеты.Договор.Код);
            Если СокрЛП(ДоговорЭлД.Код) = ""  Тогда  
                ДоговорЭлД   = СоздатьИЗаполнитьДоговор(РегРасчеты.Договор,КонтрЭлД,БазаОле.Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);                 
            КонецЕсли;    
            СтрБух.СубконтоДт.Контрагенты = КонтрЭлД.Ссылка;
            СтрБух.СубконтоДт.Договоры = ДоговорЭлД.Ссылка;
            Если РегРасчеты.РасчДокумент.ТекущийДокумент() = Док7.ТекущийДокумент() Тогда
                СтрБух.СубконтоДт.ДокументыРасчетовСКонтрагентами  = Док8.Ссылка;
            Иначе
                СтрБух.СубконтоДт.ДокументыРасчетовСКонтрагентами  = НайтиСоздатьДокументПоступления(РегРасчеты.РасчДокумент,КонтрЭлД,ДоговорЭлД);
            КонецЕсли;
        Иначе
            
            КонтрЭлК =  БазаОле.Справочники.Контрагенты.НайтиПоКоду(РегРасчеты.Контрагент.Код);
            Если СокрЛП(КонтрЭлК.Код) = ""  Тогда  
                КонтрЭлК     = СоздатьИЗаполнитьКонтрагента(РегРасчеты.Контрагент);                 
            КонецЕсли;
            ДоговорЭлК       = БазаОле.Справочники.ДоговорыКонтрагентов.НайтиПоКоду(РегРасчеты.Договор.Код);
            Если СокрЛП(ДоговорЭлК.Код) = ""  Тогда  
                ДоговорЭлК   = СоздатьИЗаполнитьДоговор(РегРасчеты.Договор,КонтрЭлК,БазаОле.Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);                 
            КонецЕсли;    
            СтрБух.СубконтоКт.Контрагенты = КонтрЭлК.Ссылка;
            СтрБух.СубконтоКт.Договоры = ДоговорЭлК.Ссылка;
            Если РегРасчеты.РасчДокумент.ТекущийДокумент() = Док7.ТекущийДокумент() Тогда
                СтрБух.СубконтоКт.ДокументыРасчетовСКонтрагентами  = Док8.Ссылка;
            Иначе
                СтрБух.СубконтоКт.ДокументыРасчетовСКонтрагентами  = НайтиСоздатьДокументПоступления(РегРасчеты.РасчДокумент,КонтрЭлК,ДоговорЭлК);
            КонецЕсли;
        КонецЕсли;
        //Если    ТекСумма <> РегРасчеты.Долг Тогда    
        //    Сообщить("Безобразие "+РегРасчеты.Долг+" ном. "+РегРасчеты.НомерСтроки);
        //Иначе
        //КонецЕсли;
        
    КонецЦикла;
    Док8.СуммаОперации = Сумма;    
    ЗапросОбъект = БазаОле.NewObject("Запрос");
    ТекстЗапроса = "
    |ВЫБРАТЬ
    | Истина Как Загрузка";
    ЗапросОбъект.Текст = ТекстЗапроса;
    Выборка = ЗапросОбъект.Выполнить().Выбрать();
    Выборка.Следующий();
    
    //Док8 = БазаОле.Документы.Док.СоздатьДокумент();
    БазаОле.ЗаполнитьЗначенияСвойств(Док8.ОбменДанными, Выборка);
    //Док8.ОбменДанными.Загрузка = 1;
    Док8.Записать();
    Возврат(Док8);
КонецФункции
2 Мисти
 
16.04.16
21:25
похожая операция - переносит.
В отладчике видно, что строки заполняются,
в проведении и подписках есть условие, что "если .загрузка = Истина Тогда возврат".
Что может быть не так??
Спасите-помогите.
3 XLife
 
16.04.16
21:26
(2) >Что может быть не так??
профессия
4 Мисти
 
16.04.16
21:26
(3) А в процедуре?
5 Звездец
 
16.04.16
21:28
(4) отладчик продать?
6 Мисти
 
16.04.16
21:28
Операция создается, а в ней только сумма итоговая и номер-дата. И комментарий, а строк нет!
7 Мисти
 
16.04.16
21:29
В отладчике видно, что строки добавляются, запись через Оле не проследить (я из 7 в 8 цепляю)
8 Amra
 
16.04.16
21:36
(7) Займись внуками и не мучай 1С и нас
9 Мисти
 
16.04.16
21:38
Да у меня редко такие затыки бывают, а внуков мне еще не народили! Нет, до пенсии надо повоевать, мне еще младшую в ВУЗе учить.
10 hhhh
 
16.04.16
21:38
а где Движение.Записать();   ?? Чудите?
11 Amra
 
16.04.16
21:40
(9) Да, обычно еще хуже, согласен
12 Мисти
 
16.04.16
21:44
hhhh, ага, помогло. Теперь вопрос, почему у меня без этого в 3 других местах записалось???
   Amra, да я неделями нечего не спрашиваю! А решаю по 5-6 разных задачек.
13 Мисти
 
16.04.16
21:45
hhhh, спасибо!! А я и чувствую, что чего-то не хватает, но вместо того, чтобы подумать - сравниваю с теми кусками, которые работают.
14 Amra
 
16.04.16
21:47
(12) Офигеть, аж 5-6 задачек? В месяц? Да, и форум говорит что как минимум пара банальнейших вопросов в неделю от тебя. Скинься ВР на хостинг.
15 Мисти
 
16.04.16
21:48
(14) В день!
16 Amra
 
16.04.16
21:50
(15) Видишь два пирожка лежат? возьми средний
17 Мисти
 
16.04.16
21:58
Amra, и не жалко время тратить на гнобление пожилой женщины?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший