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

Хранилище

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

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



> Проблемы с загрузкой из Эксель , теряются строки таблицы 3 страниц V  < 1 2 3 >          
serkus Подменю пользователя
сообщение 21.10.13, 13:38
Сообщение #21

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ardi @ 21.10.13, 13:21) *
Если удалить из эксель первые 12000, и загрузить, то проблема останется? Так ведь?

Цитата(volodya1122 @ 21.10.13, 14:32) *
То, что предлагалось в (11) посте пробовали?

да, пробовал даже делить Экселевскую таблицу на несколько документов, результат тот же.

мне кажется тут что-то не так в самой 1С, или в обработке...

mister-x Подменю пользователя
сообщение 21.10.13, 13:43
Сообщение #22

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

заберіть умову на копії обробки
Если (н>=НачНом) И (н<=КонНом) Тогда
...
КонецЕсли

і попробуйте завантажити

Домовик Подменю пользователя
сообщение 21.10.13, 13:51
Сообщение #23

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

Вот еще может быть.. обычно СокрЛП используется..
Спр.НайтиПоНаименованию(СокрП(Строка(Лист.Cells(н,Назва).Value)));


и еще. Вы же выгружете еще в Отчет

тут цепочка: Эксель-Справочник- отчет. надо еще проверить звено Справочник-Отчет. Вы же через отчет проверяете правильность выгрузки?

Цитата(serkus @ 21.10.13, 9:38) *
да, пробовал даже делить Экселевскую таблицу на несколько документов, результат тот же.



подробнее, какой?

Сообщение отредактировал Домовик - 21.10.13, 13:51

volodya1122 Подменю пользователя
сообщение 21.10.13, 13:52
Сообщение #24

Оратор
Иконка группы
Группа: Местный
Сообщений: 340
Из: Тернопіль
Спасибо сказали: 135 раз
Рейтинг: 137.7

Мені здається проблема в цьому коді;
Цитата(serkus @ 21.10.13, 13:53) *
Если ПустоеЗначение(Строка(Лист.Cells(н,Назва).Value))=0 Тогда


Тому ще раз повторю питання: якщо викинули перші 12000 рядків, тоді загрузились всі рядки, чи деякі пропали?

Сообщение отредактировал volodya1122 - 21.10.13, 13:53

Ardi Подменю пользователя
сообщение 21.10.13, 13:58
Сообщение #25

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(volodya1122 @ 21.10.13, 14:52) *
тоді загрузились всі рядки, чи деякі пропали?

Человек уже ответил "результат тот же" rofl.gif


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

volodya1122 Подменю пользователя
сообщение 21.10.13, 14:00
Сообщение #26

Оратор
Иконка группы
Группа: Местный
Сообщений: 340
Из: Тернопіль
Спасибо сказали: 135 раз
Рейтинг: 137.7

Цитата(Ardi @ 21.10.13, 14:58) *
Человек уже ответил "результат тот же"


Цю відповідь можна трактувати по різному, тому бажано уточнити....

serkus Подменю пользователя
сообщение 21.10.13, 14:07
Сообщение #27

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

Вот код отчета:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Наименование = Справочник.Пацієнти.Наименование;
    |Ена = Справочник.Пацієнти.Ена;
    |Ліз = Справочник.Пацієнти.Ліз;
    |Біс = Справочник.Пацієнти.Біс;
    |Мет = Справочник.Пацієнти.Мет;
    |Неб = Справочник.Пацієнти.Неб;
    |Ніф = Справочник.Пацієнти.Ніф;
    |Амл = Справочник.Пацієнти.Амл;
    |ЕТД = Справочник.Пацієнти.ЕТД;
    |ЛТД = Справочник.Пацієнти.ЛТД;
    |ЛТА = Справочник.Пацієнти.ЛТА;
    |Енал = Справочник.Пацієнти.Еналаприл;
    |Лізи = Справочник.Пацієнти.Лізиноприл;
    |Бісо = Справочник.Пацієнти.Бісопролол;
    |Мето = Справочник.Пацієнти.Метопролол;
    |Небі = Справочник.Пацієнти.Небівалол;
    |Ніфі = Справочник.Пацієнти.Ніфідіпін;
    |Амло = Справочник.Пацієнти.Амлодипін;
    |ЕналТаДіур = Справочник.Пацієнти.ЕналТаДіур;
    |ЛізТаДіур = Справочник.Пацієнти.ЛізТаДіур;
    |ЛізТаАмл = Справочник.Пацієнти.ЛізТаАмл;
    |СВЛР = Справочник.Пацієнти.СВЛнаРік;
    |СВЛФ = Справочник.Пацієнти.СВЛфакт;
    |КРИ = Справочник.Пацієнти.КРвиписаних;
    |КРІ = Справочник.Пацієнти.КРвідпущених;
    |КРвиписаних = Справочник.Пацієнти.КРвиписаних;
    |Функция ЕнаСумма = Сумма(Ена);
    |Функция ЛізСумма = Сумма(Ліз);
    |Функция БісСумма = Сумма(Біс);
    |Функция МетСумма = Сумма(Мет);
    |Функция НебСумма = Сумма(Неб);
    |Функция НіфСумма = Сумма(Ніф);
    |Функция АмлСумма = Сумма(Амл);
    |Функция ЕТДСумма = Сумма(ЕТД);
    |Функция ЛТДСумма = Сумма(ЛТД);
    |Функция ЛТАСумма = Сумма(ЛТА);
    |Функция ЕналСумма = Сумма(Енал);
    |Функция ЛізиСумма = Сумма(Лізи);
    |Функция БісоСумма = Сумма(Бісо);
    |Функция МетоСумма = Сумма(Мето);
    |Функция НебіСумма = Сумма(Небі);
    |Функция НіфіСумма = Сумма(Ніфі);
    |Функция АмлоСумма = Сумма(Амло);
    |Функция ЕналТаДіурСумма = Сумма(ЕналТаДіур);
    |Функция ЛізТаДіурСумма = Сумма(ЛізТаДіур);
    |Функция ЛізТаАмлСумма = Сумма(ЛізТаАмл);
    |Функция СВЛРСумма = Сумма(СВЛР);
    |Функция СВЛФСумма = Сумма(СВЛФ);
    |Функция КРИСумма = Сумма(КРИ);
    |Функция КРІСумма = Сумма(КРІ);
    |Группировка Наименование;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
        // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    _нпп=0;
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Наименование
        _нпп=_нпп+1;
        Если (_нпп >= НппН) И (_нпп <= НппК) Тогда
            Таб.ВывестиСекцию("Наименование");
        КонецЕсли;
    КонецЦикла;
    Если Печит=1 Тогда
        Таб.ВывестиСекцию("Всього");
    КонецЕсли;
    // Вывод заполненной формы                  
    Таб.ТолькоПросмотр(0);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
Процедура  
    Обрабатывать(НеПомеченныеНаУдаление);  
КонецПроцедуры;

volodya1122 Подменю пользователя
сообщение 21.10.13, 14:12
Сообщение #28

Оратор
Иконка группы
Группа: Местный
Сообщений: 340
Из: Тернопіль
Спасибо сказали: 135 раз
Рейтинг: 137.7

Ще одне, в екселівцькім файлі можуть бути повтори назв, тому в загальному виходить менше

serkus Подменю пользователя
сообщение 21.10.13, 14:16
Сообщение #29

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(volodya1122 @ 21.10.13, 15:12) *
в екселівцькім файлі можуть бути повтори назв,

повторів немає, дублів також. Та й база пуста, вона ж не зрівнює Найменування, а записи бере з № строк.

Це, якщо в базі вже є якісь найменування, тоді вона шукає співпадіння та пише: Знайдено....

alex040269 Подменю пользователя
сообщение 21.10.13, 14:16
Сообщение #30

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Я правильно понял?
Этот отчет выдает меньше строк, чем ожидалось?

1) Есть строки с одинаковыми наименованиями.
2) Есть строки с нулевыми значениями всех функций.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

serkus Подменю пользователя
сообщение 21.10.13, 14:20
Сообщение #31

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(alex040269 @ 21.10.13, 15:16) *
2) Есть строки с нулевыми значениями всех функций.

да, есть и пустые. Но почему же тогда такая маленькая разница получается? Пустых, если брать данные из Экселя около 9 000, а разница выходит 17 всего... да и до 12 000 и количество пациентов и все суммы совпадают с Экселем

volodya1122 Подменю пользователя
сообщение 21.10.13, 14:22
Сообщение #32

Оратор
Иконка группы
Группа: Местный
Сообщений: 340
Из: Тернопіль
Спасибо сказали: 135 раз
Рейтинг: 137.7

Цитата(serkus @ 21.10.13, 15:16) *
повторів немає, дублів також. Та й база пуста, вона ж не зрівнює Найменування, а записи бере з № строк.

Це, якщо в базі вже є якісь найменування, тоді вона шукає співпадіння та пише: Знайдено....


1. Впевнені що нема дублів в екселі? Рекомендую всетаки перевірити на дублі
2. Перевірити екселівський файл на пусті назви.
3. Навіть коли загружаєте в пусту базу.... То після загрузки першого рядка, база вже не пуста. і можуть бути повтори

Сообщение отредактировал volodya1122 - 21.10.13, 14:23

serkus Подменю пользователя
сообщение 21.10.13, 14:22
Сообщение #33

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

Извините, отлучусь на часок, потом вернусь

alex040269 Подменю пользователя
сообщение 21.10.13, 14:22
Сообщение #34

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Посчитайте строки с помощью:
Справочник.ВыбратьЭлементы();
Пока Справочник.ПолучитьЭлемент() = 1 Цикл
КонецЦикла;


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: Домовик,

serkus Подменю пользователя
сообщение 21.10.13, 14:24
Сообщение #35

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122, до 12000 записей все происходит КОРРЕКТНО

volodya1122, до 12000 записей все происходит КОРРЕКТНО

Домовик Подменю пользователя
сообщение 21.10.13, 14:43
Сообщение #36

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

Желательно
    |Пациент = Справочник.Пацієнти.ТекущийЭлемент;



еще поиграть с группировкой:

   |Группировка Пациент;


попробовать
    |Группировка Пациент все;

и

    |Группировка Пациент все вошедшиевзапрос;


Цитата(serkus @ 21.10.13, 10:24) *
volodya1122, до 12000 записей все происходит КОРРЕКТНО


вы так и не говорите, что же происходит если 12001 запись, 12500, 13000, 14000, 15000 ...

Сообщение отредактировал Домовик - 21.10.13, 14:35

volodya1122 Подменю пользователя
сообщение 21.10.13, 14:59
Сообщение #37

Оратор
Иконка группы
Группа: Местный
Сообщений: 340
Из: Тернопіль
Спасибо сказали: 135 раз
Рейтинг: 137.7

Доречі загружати з екселю можна і набагато більше рядків. Я для тесту пробував загрузити в ТаблицуЗначений із екселю документ на 50000 рядків і 100 стовпців. Все коректно загрузилось. і в таблиці значень були всі дані....

Спасибо сказали: Домовик,

Домовик Подменю пользователя
сообщение 21.10.13, 15:18
Сообщение #38

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

интересно есть ли разница в исполнении похожего кода:

для Н=1 по нН цикл
если спр.НайтиПоНАименованию()=1 тогда


или

как у автора
для н=1 по НН цикл
спр.НайтиПоНаименованию();
если спр.Выбран()=1 тогда  //может быть спозиционирован на н-1 ?
иначе
КонецЕсли;


Цитата(serkus @ 20.10.13, 13:10) *
. При загрузке 16000 строк в базу грузится только 15982


сколько этапов было загрузки? сколько вы раз при этом запустили обработку?

как вы интервал выбираете? у вас ведь в обработке в коде интервал "включительно" - <= и >=

Сообщение отредактировал Домовик - 21.10.13, 15:23

igmig65 Подменю пользователя
сообщение 21.10.13, 16:32
Сообщение #39

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

группировать по наименованию вообще применяется в случаях довольно редких, вам нужно группировать по элементу как сказала Домовик, и проверить сразу сколько элементов попадает в отчет.
Тогда вы узнаете хоть где ошибка, в отчете или в загрузке..

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

А вообще в вашем случае однозначно нужно группировать по ТекущщемуЭлементу справочника, а не по Наименованию, это 1.
И 2 - в группировку добавить флаг Все, тоесть чтоб попали все элементы справочника без вариантов. тогда Функции и переменные числовых реквизитов в запросе не нужны вообще, а доступ к реквизитам будет ч-з конструкцию Запрос.<ТекщийЭлементСправочника>.<РекизитСправочника>

а вашем запросе логика не соответствует поставленной задаче, тоесть вывести все элементы справочника и показать значения их реквизитов.

Сообщение отредактировал igmig65 - 21.10.13, 16:35

serkus Подменю пользователя
сообщение 21.10.13, 17:28
Сообщение #40

Общительный
**
Группа: Пользователи
Сообщений: 26
Из: Украина, Лозовая
Спасибо сказали: 0 раз
Рейтинг: 0

сейчас поэкпериментирую

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


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

 

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