Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> При выгрузки табличной части не вытягиваються все данные , с другой базы тяну данные но не все втягивает          
burza Подменю пользователя
сообщение 07.02.19, 13:17
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Есть 2 базы с одной делаю импорт через com в другую, тяну данные с таблицы, короче должно быть идентично в обеих базах, но у меня не все данные затягивает, помогите)

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

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

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

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


                       КонецЕсли;
                        

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


Это оригинал
А это что затягивает

Сообщение отредактировал Vofka - 07.02.19, 13:22

Володька Подменю пользователя
сообщение 07.02.19, 13:31
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 166
Спасибо сказали: 8 раз
Рейтинг: 0

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

burza Подменю пользователя
сообщение 07.02.19, 13:34
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Володька @ Сегодня, 13:31 * ,

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

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

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

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

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


                       КонецЕсли;
                        

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

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

    
    
                    
                               
            КонецЦикла;
            

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


Володька @ Сегодня, 13:31 * ,
Если в поле 2 строки то вытягивает только одну.

Сообщение отредактировал Vofka - 07.02.19, 13:44

Vidocq05 Подменю пользователя
сообщение 07.02.19, 13:39
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(burza @ 07.02.19, 13:33) *
запр.УстановитьПараметр("НачалоПериода", Объект.НачалоПериода);
            запр.УстановитьПараметр("КонецПериода", Объект.КонецПериода);

А сюда Вы что передаете?

burza Подменю пользователя
сообщение 07.02.19, 13:44
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Vidocq05 @ Сегодня, 13:39 * ,
НачалоГода КонецГода

Vofka Подменю пользователя
сообщение 07.02.19, 13:45
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

И проверьте все ли документы проведены.

ПС. и если вы проверяете, что Проведен = ИСТИНА, то проверку на ПометкаУдаления = ЛОЖЬ можно не выполнять.

Володька Подменю пользователя
сообщение 07.02.19, 13:46
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 166
Спасибо сказали: 8 раз
Рейтинг: 0

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


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


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

Я так понимаю Объект.НачалоПериода <= 21.11.2018 и Объект.КонецПериода <= 06.01.2019, так ли это?

burza Подменю пользователя
сообщение 07.02.19, 13:47
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Vofka @ Сегодня, 13:45 * ,
Документы проведены, на фото видно что в оригинале 3 строки а при обработки втягивает 2 одну пропускает. если что-то было не так с документом е те 2 строки не тянуло бы.

Володька Подменю пользователя
сообщение 07.02.19, 13:47
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 166
Спасибо сказали: 8 раз
Рейтинг: 0

burza @ Сегодня, 14:44 * ,
Вот и ошибка, гляньте, даты Ваших оплат, они не войдут в диапазон запроса.

burza Подменю пользователя
сообщение 07.02.19, 13:47
Сообщение #10

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Володька @ Сегодня, 13:46 * ,
НачалоГода КонецГода

Володька Подменю пользователя
сообщение 07.02.19, 13:49
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 166
Спасибо сказали: 8 раз
Рейтинг: 0

burza @ Сегодня, 14:47 * ,
Вы хотите получить документ 2018 года, если чтоwink.gif

burza Подменю пользователя
сообщение 07.02.19, 13:54
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Володька @ Сегодня, 13:47 * ,
Да вы правы, такое банальное и я пропустил, там даты за прошлый год)))

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 9:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!