Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: При выгрузки табличной части не вытягиваються все данные
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Есть 2 базы с одной делаю импорт через com в другую, тяну данные с таблицы, короче должно быть идентично в обеих базах, но у меня не все данные затягивает, помогите)

необходимо зарегистрироваться для просмотра ссылки
Пока Выборка.Следующий() Цикл
                Сообщить("Загрузка документа" + Выборка.ДатаПлатежа);
                
                    Док = Документы.ПланПриходовУТ.НайтиПоНомеру(Выборка.Номер);
                    
                    Если НЕ Док.Пустая() Тогда

                           Если  Док.СуммаПлатежа = Выборка.СуммаПлатежа  И Док.ВариантОплаты = Выборка.ВариантОплаты Тогда
                                  Сообщить("Загрузка №" + Выборка.Номер + " невозможна, поскольку документ уже был загружен");
                                  Продолжить;
                           КонецЕсли;

                           НачатьТранзакцию();
                           Док = Док.ПолучитьОбъект();
                        

                    Иначе
                          
                           НачатьТранзакцию();
                           Док = Документы.ПланПриходовУТ.СоздатьДокумент();
                        


                       КонецЕсли;
                        

                    
                        НовСтрока = Док.ЭтапыГрафикаОплаты.Добавить();
                        НовСтрока.СуммаПлатежа = Выборка.СуммаПлатежа;
                        НовСтрока.ВариантОплаты = ПодобратьВариантОплаты(Выборка.ВариантОплаты);
                        НовСтрока.ПроцентПлатежа = Выборка.ПроцентПлатежа;
                        НовСтрока.Санаторий = ПодобратьСанаторий(Выборка.Санаторий);
                        НовСтрока.Контрагент = Выборка.Контрагент;
                        НовСтрока.Партнер = Выборка.Партнер;
                        НовСтрока.Организация = Выборка.Организация;
                        НовСтрока.ДатаПлатежа = Выборка.ДатаПлатежа;
                        НовСтрока.Оплачено = Выборка.Оплачено;
                    
                
                        Док.Дата  = Выборка.Дата;
                        Док.Номер= Выборка.Номер;
                        Док.Записать();
                        ЗафиксироватьТранзакцию();
                
                               
            КонецЦикла;


Это оригинал
А это что затягивает
Володька
burza @ Сегодня, 14:17 необходимо зарегистрироваться для просмотра ссылки ,
Ну у Вас представлен только код обработки того, как Вы заполняете ТЧ, а сама Выборка не показана, смотрите запрос, что у Вас туда попадает, а вообще информативность ТЧ просто зашкаливает "Процент оплаты Z=120", Т.е. может в этом и дело, может запросом переплаты, Вы отсекаете.
burza
Володька @ Сегодня, 13:31 необходимо зарегистрироваться для просмотра ссылки ,

необходимо зарегистрироваться для просмотра ссылки
Процедура ПровестиИмпортВходящихПлатежей()
    
    ВыборкаБазДляИмпорта = РегистрыСведений.СоединенияСБазамиДанныхУТ.Выбрать();
    
    Пока ВыборкаБазДляИмпорта.Следующий() Цикл
        Если (ВыборкаБазДляИмпорта.ЗагружатьПриходБезналичный) Тогда
            Сообщить(ВыборкаБазДляИмпорта.СтрокаСоединения);
            
            СоединениеБух = СоединитьсяСБазой(ВыборкаБазДляИмпорта.СтрокаСоединения);
            Если СоединениеБух = неопределено тогда
                Сообщить("Произошла ошибка при соединении с базой предприятия " + ВыборкаБазДляИмпорта.СтрокаСоединения, СтатусСообщения.Внимание);
            Продолжить;
            иначе
                Сообщить("Успешно соединились с базой предприятия " + ВыборкаБазДляИмпорта.СтрокаСоединения, СтатусСообщения.Информация);
            конецЕсли;

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

                           Если  Док.СуммаПлатежа = Выборка.СуммаПлатежа  И Док.ВариантОплаты = Выборка.ВариантОплаты Тогда
                                  Сообщить("Загрузка №" + Выборка.Номер + " невозможна, поскольку документ уже был загружен");
                                  Продолжить;
                           КонецЕсли;

                           НачатьТранзакцию();
                           Док = Док.ПолучитьОбъект();
                        

                    Иначе
                          
                           НачатьТранзакцию();
                           Док = Документы.ПланПриходовУТ.СоздатьДокумент();
                    


                       КонецЕсли;
                        

                    
                        НовСтрока = Док.ЭтапыГрафикаОплаты.Добавить();
                        НовСтрока.СуммаПлатежа = Выборка.СуммаПлатежа;
                        НовСтрока.ВариантОплаты = ПодобратьВариантОплаты(Выборка.ВариантОплаты);
                        НовСтрока.ПроцентПлатежа = Выборка.ПроцентПлатежа;
                        НовСтрока.Санаторий = ПодобратьСанаторий(Выборка.Санаторий);
                        НовСтрока.Контрагент = Выборка.Контрагент;
                        НовСтрока.Партнер = Выборка.Партнер;
                        НовСтрока.Организация = Выборка.Организация;
                        НовСтрока.ДатаПлатежа = Выборка.ДатаПлатежа;
                        НовСтрока.Оплачено = Выборка.Оплачено;

                        Док.Дата  = Выборка.Дата;
                        Док.Номер= Выборка.Номер;
                        Док.Записать();
                        ЗафиксироватьТранзакцию();

    
    
                    
                               
            КонецЦикла;
            

        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры


Володька @ Сегодня, 13:31 необходимо зарегистрироваться для просмотра ссылки ,
Если в поле 2 строки то вытягивает только одну.
Vidocq05
Цитата(burza @ 07.02.19, 13:33) необходимо зарегистрироваться для просмотра ссылки
запр.УстановитьПараметр("НачалоПериода", Объект.НачалоПериода);
            запр.УстановитьПараметр("КонецПериода", Объект.КонецПериода);

А сюда Вы что передаете?
burza
Vidocq05 @ Сегодня, 13:39 необходимо зарегистрироваться для просмотра ссылки ,
НачалоГода КонецГода
Vofka
И проверьте все ли документы проведены.

ПС. и если вы проверяете, что Проведен = ИСТИНА, то проверку на ПометкаУдаления = ЛОЖЬ можно не выполнять.
Володька
                    |    И РегистрСчетовЭтапыГрафикаОплаты.Ссылка.Проведен = ИСТИНА
                    |    И РегистрСчетовЭтапыГрафикаОплаты.Ссылка.ПометкаУдаления = ЛОЖЬ";


Зачем делать отборы, если можно создать РС и сделать Регистратором Ваш документ? И в будущем все запросы делать к РС?


В самом запросе:
| РегистрСчетовЭтапыГрафикаОплаты.ДатаПлатежа МЕЖДУ &НачалоПериода И &КонецПериода
запр.УстановитьПараметр("НачалоПериода", Объект.НачалоПериода);
запр.УстановитьПараметр("КонецПериода", Объект.КонецПериода);

Я так понимаю Объект.НачалоПериода <= 21.11.2018 и Объект.КонецПериода <= 06.01.2019, так ли это?
burza
Vofka @ Сегодня, 13:45 необходимо зарегистрироваться для просмотра ссылки ,
Документы проведены, на фото видно что в оригинале 3 строки а при обработки втягивает 2 одну пропускает. если что-то было не так с документом е те 2 строки не тянуло бы.
Володька
burza @ Сегодня, 14:44 необходимо зарегистрироваться для просмотра ссылки ,
Вот и ошибка, гляньте, даты Ваших оплат, они не войдут в диапазон запроса.
burza
Володька @ Сегодня, 13:46 необходимо зарегистрироваться для просмотра ссылки ,
НачалоГода КонецГода
Володька
burza @ Сегодня, 14:47 необходимо зарегистрироваться для просмотра ссылки ,
Вы хотите получить документ 2018 года, если чтоwink.gif
burza
Володька @ Сегодня, 13:47 необходимо зарегистрироваться для просмотра ссылки ,
Да вы правы, такое банальное и я пропустил, там даты за прошлый год)))

как сюда дописать проверку по данным, для того чтобы получать обьект и писать изменения если сменяться изменения в оригинале?)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.