Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Shadowbobr2121
0 / 0 / 1
Регистрация: 15.07.2017
Сообщений: 20
#1

Удвоение записей, при данных выгрузке в BDF - 1С

11.09.2017, 10:49. Просмотров 185. Ответов 2
Метки нет (Все метки)

День добрый. Написал небольшую выгрузку, которая перегружает данные из запроса, в BataBase файл, с нужными мне полями. Но при выгрузке записи удваиваются и утраиваются. Не пойму из за чего именно. Логику проверил, вроде все верно. ниже пример кода

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
        Результат = Запрос.Выполнить();
 
        Connection = Новый COMОбъект("ADODB.Connection");
    Command = Новый COMОбъект("ADODB.Command");
    
    Попытка
        Connection.Open(_СЭПО_MetaSQL.ПолучитьСтрокуПодключенияКТаблицамVisualFoxPro(ВыборКаталога))
    Исключение
        ВызватьИсключение "Не удалось установить соединение с источником данных!"
    КонецПопытки;
    
    Command.CommandType = 1;
    Command.ActiveConnection = Connection;  
    
    Connection.BeginTrans();
    
    ВыборкаСотрудник = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Попытка
        
        Пока ВыборкаСотрудник.Следующий() Цикл
            
            ВыборкаДетальныеЗаписи = ВыборкаСотрудник.Выбрать();
            
            ДатаНачала = Неопределено;
            ДатаКонца  = Неопределено;
            ПредыдущийПериод = Неопределено;
            
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                
                ДатаНачала = ?(ДатаНачала = Неопределено,ВыборкаДетальныеЗаписи.Период,ДатаНачала);
                ДатаКонца  = ?(ДатаКонца = Неопределено,ВыборкаДетальныеЗаписи.Период,ДатаКонца);
                
                Если ПредыдущийПериод = Неопределено Тогда
                    
                    ПредыдущийПериод = ВыборкаДетальныеЗаписи.Период;
                    
                ИначеЕсли ВыборкаДетальныеЗаписи.Период = ПредыдущийПериод + 86400 Тогда
                    
                    ДатаКонца = ВыборкаДетальныеЗаписи.Период;
                    ПредыдущийПериод = ВыборкаДетальныеЗаписи.Период;
                    
                Иначе   
                    
                    Command.CommandText = "INSERT INTO DEPENS "
                    + "(NGOD, MES, IN, CEX, TABN, VOP, DATN, DATOK, SROK) VALUES ("
                    + "2017, "                                              //NGOD
                    + Месяц(Период) + ", "                                  //MES
                    + ВыборкаСотрудник.ИдентификационныйНомер + ", "        //IN
                    + ВыборкаСотрудник.ПодразделениеОрганизации + ", "      //CEX
                    + Формат(ВыборкаСотрудник.ТабНомер, "ЧН=0; ЧГ=0") + ", "//TABN
                    + "109, {"                                              //VOP
                    + Формат(ДатаНачала, "ДФ=ММ/дд/гггг") + "}, {"          //DATN
                    + Формат(ДатаКонца, "ДФ=ММ/дд/гггг") + "}, "            //DATK
                    + "3)";                                                 //SROK
                    
                    Command.Execute();
                    
                    ДатаНачала = ВыборкаДетальныеЗаписи.Период;
                    ДатаКонца  = ВыборкаДетальныеЗаписи.Период;
                    ПредыдущийПериод = ВыборкаДетальныеЗаписи.Период;
                    
                КонецЕсли;
                
            КонецЦикла;
            
            Command.CommandText = "INSERT INTO DEPENS "
            + "(NGOD, MES, IN, CEX, TABN, VOP, DATN, DATOK, SROK) VALUES ("
            + "2017, "                                              //NGOD
            + Месяц(Период) + ", "                                  //MES
            + ВыборкаСотрудник.ИдентификационныйНомер + ", "        //IN
            + ВыборкаСотрудник.ПодразделениеОрганизации + ", "      //CEX
            + Формат(ВыборкаСотрудник.ТабНомер, "ЧН=0; ЧГ=0") + ", "//TABN
            + "109, {"                                              //VOP
            + Формат(ДатаНачала, "ДФ=ММ/дд/гггг") + "}, {"          //DATN
            + Формат(ДатаКонца, "ДФ=ММ/дд/гггг") + "}, "            //DATK
            + "3)";                                                 //SROK
            
            Command.Execute();
            
        КонецЦикла; 
        
        Connection.CommitTrans();
        Connection.Close()
        
    Исключение
        
        Connection.RollbackTrans();
        Connection.Close();
        ВызватьИсключение ОписаниеОшибки()
        
    КонецПопытки;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2017, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удвоение записей, при данных выгрузке в BDF (1С):

Ошибки при выгрузке данных. Правила написаны через Конвертацию данных редакции 2 - 1С
Добрый день. Подскажите, пожалуйста, в чем может быть дело. Через конвертацию данных редакции 2 пишу правила переноса из Бухгалтерский учет...

УТ 10.3: удвоение суммы в регистр - 1С
Здравствуйте. Столкнулся с такой проблемой: создаем документ ПоступлениеДопРасходов, в нем 2 позиции номенклатуры: пор одной доп.расход...

УТ 10.3 ошибка при выгрузке - 1С
Привет. Ут 10.3 конфа много раз изменялась и все было норм, но сейчас непонятная проблема: запускаю штатный обмен с розницей и ошибка....

УТ. Фатальная ошибка при выгрузке в XML - 1С
Доброго времени. Есть конфигурация управление торговлей, есть обработка ВыгрузкаЗагрузкаДанныхXML(Стандартная). Все прекрасно работало и...

1C 8.x Ошибка при выгрузке отчета 2-НДФЛ - 1С
Здравствуйте! 1С "Бухгалтерия предприятия(Базовая)", файловая версия, версия платформы 8.3.7.1845. Версия конфигурации 3.0.43.50 ...

1C 8.x Конвертация: При выгрузке одного дока, тянуть другой по ссылке - 1С
Всем привет. Задачка есть, вроде не большая, но что-то выше моих понимания и скиллов гугления. Есть правила между УТ 10.3 и БП 2.0. ...

2
GreenkA
Модератор
Эксперт 1С
1793 / 1298 / 450
Регистрация: 25.06.2009
Сообщений: 3,666
11.09.2017, 12:04 #2
Shadowbobr2121, не понимаю, где здесь правильная логика: вы обходите выборку запроса по группировкам - хорошо.
ВыборкаСотрудник - верхний уровень, внутри обхода этой группировки - цикл с обходом ВыборкаДетальныеЗаписи. И в этом вложенном цикле вы пишете данные в файл, но используя данные ВыборкаСотрудник и полученные из ВыборкаДетальныеЗаписи значения переменных ДатаНачала и ДатаКонца - ок, ладно.
Зачем после цикла обхода ВыборкаДетальныеЗаписи снова запись в файл с теми же значениями? Какие у вас будут значения переменных ДатаНачала и ДатаКонца после цикла? Вот подумайте, а лучше отладчиком пройдитесь.
0
Shadowbobr2121
0 / 0 / 1
Регистрация: 15.07.2017
Сообщений: 20
12.09.2017, 10:45  [ТС] #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
GreenkA, прошу прощения. Но ошибка была в CDX файле. А с циклом выборки все в порядке. Спасибо что откликнулись на помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2017, 10:45
Привет! Вот еще темы с ответами:

1C 8.x Ошибка разбора XML при выгрузке базы 1С7.7 в 1С8.2 - 1С
Здравствуйте. Прошу помочь. Есть база в 1с 7.7 Бухгалтерский учет для Казахстана 7.70.273 надо ее загрузить в 1с 8.2. (8.2.19.83)...

Ошибка при выгрузке данных в Excel - C#
Ребят, подскажи в чем ошибка. Выгружается только одна запись из запроса, хотя должно быть 5 строк. Выгружается только шапка и одна строка....

При выгрузке данных из экселя в .тхт неполностью - VBA
Есть данные записанные в столбец экселя, при выгрузки их на тхт они частично теряются. Почему? Непосредственно, код:

MySQL Не отображается русский язык при выгрузке данных из MySql - C#
Всем привет! Возникла проблема после подключения к проекту C# субд MySql. Работаю в VS2015 и MySql 5.5. После выполнения запроса и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.