Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
1

Чтение файла Excel и получение остатков по товарам. Пустой результат запроса.

03.01.2018, 13:39. Просмотров 857. Ответов 9
Метки нет (Все метки)

Доброго времени суток. Стоит задача изначально:
1)есть исходный exel файл,его нужно загрузить в 1с(Номенклатура,код,количество)-Выполнено
2)Выгрузил я все это ТЗ,теперь задача,по каждой номенклатуре получить остатки в 1с-Тут я и завис
В чем проблема?-Проблема в том,что результат запроса пустой(смотрел отладкой,ТЗ экселя заполнен),а ТЗЗапроса(сюда я выгружаю результат запроса)-пустой,почему?Вот в этом и вопрос.

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
ТЗ  = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Номенклатура",новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
    ТЗ.Колонки.Добавить("Код");
    ТЗ.Колонки.Добавить("Кол");
 
        Для СчетчикЦикла=10 По ФайлСтрок Цикл
        Если ЗначениеЗаполнено(СокрЛП(Ехсел.Cells(СчетчикЦикла,3).value)) Тогда
            Если ЗначениеЗаполнено(СокрЛП(Ехсел.Cells(СчетчикЦикла,14).value)) Тогда
            НоваяСтрока=ТЗ.Добавить();
            НоваяСтрока.Номенклатура=СокрЛП(Ехсел.Cells(СчетчикЦикла,3).value);
            НоваяСтрока.Код=СокрЛП(Ехсел.Cells(СчетчикЦикла,7).value);
            НоваяСтрока.Кол=СокрЛП(Ехсел.Cells(СчетчикЦикла,14).value);
            Индикатор.Значение = Индикатор.Значение + 1;
            ЭлементыФормы.Состояние.Заголовок = "Количество обработанных строк" + " " + Индикатор.Значение;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Ехсел.Application.Quit();
 
    Запрос = Новый запрос;
    Запрос.УстановитьПараметр("Дата",ДатаЗапроса);
    Запрос.УстановитьПараметр("Номенклатура",ТЗ.ВыгрузитьКолонку("Номенклатура"));
    Запрос.Текст="ВЫБРАТЬ
                 |  ТоварыОрганизацийБУОстатки.КоличествоОстаток,
                 |  ТоварыОрганизацийБУОстатки.Товар
                 |ИЗ
                 |  РегистрНакопления.ТоварыОрганизацийБУ.Остатки(&Дата, Товар В (&Номенклатура)) КАК 
                                                                                                                                       ТоварыОрганизацийБУОстатки";
    ТЗЗапрос = Запрос.Выполнить().Выгрузить();
Подскажите,где я "промаргал"?Читал что такое может быть,если нетипизированная колонка в ТЗ экселя, указал тип,только результата нет.Заранее спасибо!
P.S:Пните,чтоб раз и на всегда понял
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2018, 13:39
Ответы с готовыми решениями:

Почему Пустой Результат Запроса?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Вид,...

Получение остатков (дата прихода)
Такая ситуация - есть отчет по получению остатков по складу (с группировкой по...

1C 7.7 Запрос на получение остатков по счетам
Добрый день! Так получилось, что пути с семеркой пересеклись впервые. Пишу...

Чтение Excel файла
Добрый день, начинаю изучать 1С , и не могу ничего найти по данной теме. Есть...

Получение остатков регистра через запрос
Здравствуйте. Нужно получить количественный остаток номенклатуры из регистра...

9
GreenkA
Модератор
Эксперт 1С
2259 / 1645 / 497
Регистрация: 25.06.2009
Сообщений: 6,015
03.01.2018, 14:28 2
wattot, при чтении файла Excel вы в колонку Номенклатура загоняете строку, а надо искать нужный элемент по справочнику или создавать новый.
0
Tklwegsd
Эксперт 1С
694 / 503 / 172
Регистрация: 24.07.2013
Сообщений: 1,785
03.01.2018, 14:30 3
Цитата Сообщение от wattot Посмотреть сообщение
ТЗ.ВыгрузитьКолонку("Номенклатура")
Здесь массив значений какого типа?
0
GreenkA
Модератор
Эксперт 1С
2259 / 1645 / 497
Регистрация: 25.06.2009
Сообщений: 6,015
03.01.2018, 15:00 4
Лучший ответ Сообщение было отмечено wattot как решение

Решение

Цитата Сообщение от Tklwegsd Посмотреть сообщение
Здесь массив значений какого типа?
Да там пусто по идее будет, т.к. при создании колонок таблицы значений - ссылочный тип явно задан, а при чтении файла туда пытаются засунуть нечто иное..

Добавлено через 26 минут
wattot, короче
Цитата Сообщение от wattot Посмотреть сообщение
ТЗ.Колонки.Добавить("Кол");
ужасное название колонки

И по делу: надо примерно так(+ определиться с типами для колонок Код и Кол. СокрЛП() - дает на выходе Строку, поэтому для второй колонки вероятнее всего необходимо преобразование к типу Число)
1C
1
НоваяСтрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Ехсел.Cells(СчетчикЦикла,3).value));
1
wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
03.01.2018, 20:23  [ТС] 5
Спасибо,Ваш ответ помог!По поводу переменных(названий колонок),я обязательно исправлюсь)
0
GreenkA
Модератор
Эксперт 1С
2259 / 1645 / 497
Регистрация: 25.06.2009
Сообщений: 6,015
03.01.2018, 20:52 6
wattot, да уж да) Если надо сочинить название чему-нибудь...веселенькое, но понятное - обращайтесь
0
wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
03.01.2018, 23:26  [ТС] 7
Кому нужно и кто столкнется с такой же примерно проблемой,в качестве примера выкладываю обработку которую делал.
Что она делает:
1)загружает данные в ТЗ из экселя
2)по реквизиту(переделал,что запрос по артикулу) ищет остатки в базе и загружает данные во вторую ТЗОстатки
3)Методом перебора второй(ТЗОстатки) искал в первой(ТЗ) строку и сравнивал количество,в общем проводил манипуляции с данными и вывел в табличную часть

P/S: это обычное приложение
Обработка.zip
1
GreenkA
04.01.2018, 09:30
  #8

Не по теме:

wattot, классный аватар:good:

0
Dethmontt
05.01.2018, 04:48
  #9

Не по теме:

Цитата Сообщение от GreenkA Посмотреть сообщение
wattot, классный аватар
белый квадрат Малевича)))))))))))

0
GreenkA
05.01.2018, 06:06     1C 8.x Чтение файла Excel и получение остатков по товарам. Пустой результат запроса.
  #10

Не по теме:

Цитата Сообщение от Dethmontt Посмотреть сообщение
белый квадрат Малевича)))))))))))
ага, ничего лишнего)

0
05.01.2018, 06:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2018, 06:06
Привет! Вот еще темы с ответами:

Пустой результат запроса
Как в ПШП узнать, что запрос из базы вернулся пустой?

Подсчет остатков по товарам
Добрый вечер, столкнулся со следующей проблемой: в таблице "Заказы" содержатся...

Пустой результат запроса(почему)
Если я напишу простой запрос: $que = "Select id_persum From...


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

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

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