Имя: Пароль:
1C
1С v8
Штрихкоды
0 ВежливаяТварь
 
01.09.11
15:11
Доброго времени суток) Есть не много глупый вопрос. Имеется УТП для Украины. Задачу мне поставили следующую нужно считать штрих коды товаров из екселевского файла. Вытянуть для каждого владельца штрихкода информацию о начальном, конечном остатке и расходе. И после этого засунуть обратно в тот же файл ексель.
Вытянуть все штрих коды в список значений труда не составило, проблема в том что не могу в конструкторе запроса в виртуальной таблице "ТоварыНаСкладе.Остатки и обороты" в реквизите Номенклатура найти поле штрихкод.
В этом собстевенно и вопрос как там поставить фильтр с моим списком штрихкодов.
1 Wobland
 
01.09.11
15:11
в россии для ШК есть спецрегистр. сведений
2 Goggy
 
01.09.11
15:13
+(2) соединяем по владельцу в запросе с остатками
3 ВежливаяТварь
 
01.09.11
15:15
Тут я тоже нашёл регистр сведений "Штрихкоды". Привязал его к "Товар на складе". Но убей не могу понять, как поставить фильтр с моим списоком значений. К тому же у меня штрих кода в списке хранятся как обычная строка. Будет ли фильтр так работать или нужен тип штрих кодов?
4 Нуф-Нуф
 
01.09.11
15:16
использую таблицу значений со штрихкодами как временную таблицу в запросе. и с ней соединяй
менеджер временных таблиц тебя спасет
5 ВежливаяТварь
 
01.09.11
15:21
(4) а как её использовать как временную таблицу?
6 ВежливаяТварь
 
01.09.11
15:32
По моему нашёл как. Спасибо сейчас попробую.
7 ВежливаяТварь
 
01.09.11
15:50
Получился вот такой код
Для Строка=10 По ВсегоСтрок Цикл
       Штрихкод = Лист.Cells(Строка, 3).Value;
       Если ЗначениеЗаполнено(Штрихкод)=Истина Тогда
           НоваяСтрока=ТаблицаШтрихкодов.Добавить();
           НоваяСтрока.НомерСтроки=Строка;
           НоваяСтрока.Штрихкод=Штрихкод;
       КонецЕсли;        
   КонецЦикла;

   МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ТаблицаШтрихкодов.НомерСтроки,
   |    ТаблицаШтрихкодов.Штрихкод
   |ПОМЕСТИТЬ ШтрихкодаЕксель
   |ИЗ
   |    &ТаблицаШтрихкодов КАК ТаблицаШтрихкодов";

Запрос.УстановитьПараметр("ТаблицаШтрихкодов", ТаблицаШтрихкодов);
Запрос.Выполнить();


Но выдаёт такую ошибку: {Форма.ФормаОтчета(41)}: Ошибка при вызове метода контекста (Выполнить): {(2, 2)}: Тип не может быть выбран в запросе
<<?>>ТаблицаШтрихкодов.Штрихкод
Запрос.Выполнить();
Скажите пожалуйста почему.
8 ВежливаяТварь
 
01.09.11
15:51
Все понял извините за беспокойство
9 ВежливаяТварь
 
01.09.11
15:58
Поторопился. Думал дело в том что нельзя использовать переменную с именем строка. Оказалось дело не в этом.
10 Wobland
 
01.09.11
15:59
а что за тип-то у штрихкода?
11 ВежливаяТварь
 
01.09.11
16:08
а понял там стоит тип ячейка нужно перевести в строку или число?
12 Wobland
 
01.09.11
16:11
(11) какая странная УТ для Украины. что это за тип такой?
13 Wobland
 
01.09.11
16:12
как получил ТаблицуШтрихкодов?
14 ВежливаяТварь
 
01.09.11
16:13
ТаблицаШтрихкодов=Новый ТаблицаЗначений;
   ТаблицаШтрихкодов.Колонки.Добавить("НомерСтроки");
   ТаблицаШтрихкодов.Колонки.Добавить("Штрихкод");
               
   ExcelПриложение = Новый COMObject("Excel.Application");
   Книга = ExcelПриложение.Workbooks.Open(ПолеПуть);
   Лист = Книга.WorkSheets(1);
   ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
   
   //Заносим штрих коды в таблицу и список
   Для НомСтроки=10 По ВсегоСтрок Цикл
       Штрихкод = Лист.Cells(НомСтроки, 3).Value;
       Если ЗначениеЗаполнено(Штрихкод)=Истина Тогда
           НоваяСтрока=ТаблицаШтрихкодов.Добавить();
           НоваяСтрока.НомерСтроки=НомСтроки;
           Штрихкод=Строка(Штрихкод);
           НоваяСтрока.Штрихкод=Штрихкод;
       КонецЕсли;        
   КонецЦикла;
15 Wobland
 
01.09.11
16:14
строка же, какая ячейка
16 Wobland
 
01.09.11
16:14
может, типизировать колонку надо? а то запросы не любят строк неограниченной длины
17 Злобный Фей
 
01.09.11
16:24
ВЫБРАТЬ
   Штрихкоды.Владелец,
   ПРЕДСТАВЛЕНИЕ(Штрихкоды.Владелец),
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
   РегистрСведений.Штрихкоды КАК Штрихкоды
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
       ПО Штрихкоды.Владелец = ТоварыНаСкладахОстаткиИОбороты.Номенклатура
ГДЕ
   Штрихкоды.Штрихкод В(&СписокШтрихкодов)
18 ВежливаяТварь
 
01.09.11
16:27
Штрихкоды можно передавать как список числовых значений?
19 Злобный Фей
 
01.09.11
16:30
(18) Строковых
20 Wobland
 
01.09.11
16:30
(18) можно. если в "приёмнике" они тоже числа. но у тебя там строки
21 ВежливаяТварь
 
01.09.11
16:30
(17)Попробовал не получается у меня штрихкоды тип число. Туда наверно нужно передавать другой тип.
22 ВежливаяТварь
 
01.09.11
16:31
Сейчас попробую
23 ВежливаяТварь
 
01.09.11
16:32
Заработало. Огромнейшее спасибо.
24 Wobland
 
01.09.11
16:43
(21) не надо тебе число. "001234"<>"01234"