|
Ошибка отбора данных в обработке | ☑ | ||
---|---|---|---|---|
0
Олеся999
06.04.15
✎
06:50
|
Обработка загрузки документов из самописной конфы в БП.
В верхней таблице (ДанныеОбмена) выбираем документ, в нижней таблице (тзДокумент) должно отобразиться содержание этого документа. Проблема возникла с отбором в нижней таблице почему то выводятся содержание всех документов. Код: &НаКлиенте Функция ПодключитьсяК1С() // создается объект COM-соединение Соединитель = Новый COMObject("V83.COMConnector"); Попытка v8 = Соединитель.Connect("srvr = ""1C""; ref = ""Производство""; usr = ""Админ""; pwd = ""4466"""); Исключение Предупреждение("Не удалось подключиться к Биллингу!",5); Возврат Неопределено; КонецПопытки; Возврат v8; КонецФункции &НаКлиенте Процедура ПолучитьДанные(Команда) Перем COM; Если НЕ ЗначениеЗаполнено(НачПериода) Тогда Предупреждение("Заполните начало периода", 3); ТекущийЭлемент = Элементы.НачПериода; Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(КонПериода) Тогда Предупреждение("Заполните окончание периода", 3); ТекущийЭлемент = Элементы.КонПериода; Возврат; КонецЕсли; Если COM = Неопределено Тогда COM = ПодключитьсяК1С(); Если COM = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; ДанныеОбмена.Очистить(); ЗапросCOM = COM.NewObject("Запрос"); ЗапросCOM.Текст = "ВЫБРАТЬ | ПриходнаяНакладная.Номер, | ПриходнаяНакладная.Дата, | ПриходнаяНакладная.Контрагент.Наименование КАК Контрагент, | ПриходнаяНакладная.ИтоговаяСумма, | ПриходнаяНакладная.Фирма.Наименование КАК Фирма, | ПриходнаяНакладная.ИнфНакладной, | ПриходнаяНакладная.ДатаНакладной, | ПриходнаяНакладная.ИнфСчета, | ПриходнаяНакладная.ДатаСчета |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Дата МЕЖДУ &НачДата И &КонДата"; ЗапросCOM.УстановитьПараметр("НачДата", НачалоДня(НачПериода)); ЗапросCOM.УстановитьПараметр("КонДата", КонецДня(КонПериода)); Рез = ЗапросCOM.Выполнить(); //Рез.Выгрузить(ДанныеОбмена); Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл НС = ДанныеОбмена.Добавить(); ЗаполнитьЗначенияСвойств(НС, Выборка); КонецЦикла; COM = Неопределено; Сообщение = Новый СообщениеПользователю; //================================================================================ КонецПроцедуры &НаКлиенте Процедура ДанныеОбменаПриАктивизацииСтроки(Элемент) Перем COM; Если COM = Неопределено Тогда COM = ПодключитьсяК1С(); Если COM = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; //ДанныеОбмена.Очистить(); ЗапросCOM2 = COM.NewObject("Запрос"); ЗапросCOM2.Текст = "ВЫБРАТЬ | ПриходнаяНакладнаяТаблЧасть.Ссылка.Номер, | ПриходнаяНакладнаяТаблЧасть.Номенклатура, | ПриходнаяНакладнаяТаблЧасть.Артикул, | ПриходнаяНакладнаяТаблЧасть.Количество, | ПриходнаяНакладнаяТаблЧасть.Цена, | ПриходнаяНакладнаяТаблЧасть.Сумма |ИЗ | Документ.ПриходнаяНакладная.ТаблЧасть КАК ПриходнаяНакладнаяТаблЧасть"; Рез2 = ЗапросCOM2.Выполнить(); //Рез.Выгрузить(ДанныеОбмена); Выборка2 = Рез2.Выбрать(); Пока Выборка2.Следующий() Цикл НС2 = тзДокумент.Добавить(); ЗаполнитьЗначенияСвойств(НС2, Выборка2); КонецЦикла; // тзДокумент.Очистить(); // // Отберем строки табличной части // ОтборСтрок = Новый Структура; // ОтборСтрок.Вставить("Номер",ДанныеОбмена.Номер); // МассивС = ДанныеОбмена.НайтиСтроки(ОтборСтрок); // Для каждого СтрокаМассивС Из МассивС Цикл // // Добавим анализ // Если СтрокаМассивС.ДанныеОбмена.Номер Тогда // НС =тзДокумент.Номер.Добавить(); // ЗаполнитьЗначенияСвойств(НС, СтрокаМассивС, "Номенклатура,Количество,Цена,Сумма"); // Иначе // Сообщить("Какаета херня"); // //НС = НДок.Товары.Добавить(); // //ЗаполнитьЗначенияСвойств(НС, См, , "Себестоимость"); // //НС.СчетУчета = СчетУчетаТч; // //НС.КоличествоМест = 1; // КонецЕсли; // КонецЦикла; ////COM = Неопределено; //// ////Сообщение = Новый СообщениеПользователю; КонецПроцедуры Выводится: http://lvkr.ru/f/ts2AYH/640.jpg //________________________________________________________________________________________________ &НаКлиенте Функция ПодключитьсяК1С() // создается объект COM-соединение Соединитель = Новый COMObject("V83.COMConnector"); Попытка v8 = Соединитель.Connect("srvr = ""1C""; ref = ""Производство""; usr = ""Админ""; pwd = ""4466"""); Исключение Предупреждение("Не удалось подключиться к Биллингу!",5); Возврат Неопределено; КонецПопытки; Возврат v8; КонецФункции &НаКлиенте Процедура ПолучитьДанные(Команда) Перем COM; Если НЕ ЗначениеЗаполнено(НачПериода) Тогда Предупреждение("Заполните начало периода", 3); ТекущийЭлемент = Элементы.НачПериода; Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(КонПериода) Тогда Предупреждение("Заполните окончание периода", 3); ТекущийЭлемент = Элементы.КонПериода; Возврат; КонецЕсли; Если COM = Неопределено Тогда COM = ПодключитьсяК1С(); Если COM = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; ДанныеОбмена.Очистить(); ЗапросCOM = COM.NewObject("Запрос"); ЗапросCOM.Текст = "ВЫБРАТЬ | ПриходнаяНакладная.Номер, | ПриходнаяНакладная.Дата, | ПриходнаяНакладная.Контрагент.Наименование КАК Контрагент, | ПриходнаяНакладная.ИтоговаяСумма, | ПриходнаяНакладная.Фирма.Наименование КАК Фирма, | ПриходнаяНакладная.ИнфНакладной, | ПриходнаяНакладная.ДатаНакладной, | ПриходнаяНакладная.ИнфСчета, | ПриходнаяНакладная.ДатаСчета |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Дата МЕЖДУ &НачДата И &КонДата"; ЗапросCOM.УстановитьПараметр("НачДата", НачалоДня(НачПериода)); ЗапросCOM.УстановитьПараметр("КонДата", КонецДня(КонПериода)); Рез = ЗапросCOM.Выполнить(); //Рез.Выгрузить(ДанныеОбмена); Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл НС = ДанныеОбмена.Добавить(); ЗаполнитьЗначенияСвойств(НС, Выборка); КонецЦикла; COM = Неопределено; Сообщение = Новый СообщениеПользователю; //================================================================================ КонецПроцедуры &НаКлиенте Процедура ДанныеОбменаПриАктивизацииСтроки(Элемент) Перем COM; Если COM = Неопределено Тогда COM = ПодключитьсяК1С(); Если COM = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; //ДанныеОбмена.Очистить(); ЗапросCOM2 = COM.NewObject("Запрос"); ЗапросCOM2.Текст = "ВЫБРАТЬ | ПриходнаяНакладнаяТаблЧасть.Ссылка.Номер, | ПриходнаяНакладнаяТаблЧасть.Номенклатура, | ПриходнаяНакладнаяТаблЧасть.Артикул, | ПриходнаяНакладнаяТаблЧасть.Количество, | ПриходнаяНакладнаяТаблЧасть.Цена, | ПриходнаяНакладнаяТаблЧасть.Сумма |ИЗ | Документ.ПриходнаяНакладная.ТаблЧасть КАК ПриходнаяНакладнаяТаблЧасть"; Рез2 = ЗапросCOM2.Выполнить(); //Рез.Выгрузить(ДанныеОбмена); Выборка2 = Рез2.Выбрать(); Пока Выборка2.Следующий() Цикл НС2 = тзДокумент.Добавить(); ЗаполнитьЗначенияСвойств(НС2, Выборка2); КонецЦикла; тзДокумент.Очистить(); // Отберем строки табличной части ОтборСтрок = Новый Структура; ОтборСтрок.Вставить("Номер",ДанныеОбмена.Номер); МассивС = ДанныеОбмена.НайтиСтроки(ОтборСтрок); Для каждого СтрокаМассивС Из МассивС Цикл // Добавим анализ Если СтрокаМассивС.ДанныеОбмена.Номер Тогда НС =тзДокумент.Номер.Добавить(); ЗаполнитьЗначенияСвойств(НС, СтрокаМассивС, "Номенклатура,Количество,Цена,Сумма"); Иначе Сообщить("Какаета хрень"); //НС = НДок.Товары.Добавить(); //ЗаполнитьЗначенияСвойств(НС, См, , "Себестоимость"); //НС.СчетУчета = СчетУчетаТч; //НС.КоличествоМест = 1; КонецЕсли; КонецЦикла; //COM = Неопределено; // //Сообщение = Новый СообщениеПользователю; КонецПроцедуры Выводится:http://lvkr.ru/f/R4HAj8/640.jpg Ошибка: {Форма.Форма.Форма(106)}: Поле объекта не обнаружено (Номер) ОтборСтрок.Вставить("Номер",ДанныеОбмена.Номер); |
|||
1
Wobland
06.04.15
✎
06:52
|
что за ДанныеОбмена?
|
|||
2
Олеся999
06.04.15
✎
06:53
|
||||
3
Олеся999
06.04.15
✎
06:54
|
(1) Документы приходной накладной
|
|||
4
Wobland
06.04.15
✎
06:55
|
(3) это ты так думаешь ;)
|
|||
5
Олеся999
06.04.15
✎
07:02
|
(1) А еще это так ТЗ Называется
Таблица значений ДанныеОбмена |
|||
6
smitru
06.04.15
✎
07:40
|
(5) попробуй исправить, вместо:
| ПриходнаяНакладнаяТаблЧасть.Ссылка.Номер, Поставь | ПриходнаяНакладнаяТаблЧасть.Ссылка.Номер Как Номер, |
|||
7
Олеся999
06.04.15
✎
07:49
|
(6) Неа такая же ошибка
|
|||
8
Wobland
06.04.15
✎
07:53
|
ТЗ, говоришь? неопределено у тебя там
|
|||
9
Олеся999
06.04.15
✎
07:54
|
(8) Ну да ДанныеОбмена эта таблица значений
|
|||
10
Олеся999
06.04.15
✎
09:45
|
Написала вот так
ОтборСтрок.Вставить("Номер",Номер); Ругается: {Форма.Форма.Форма(106,31)}: Переменная не определена (Номер) ОтборСтрок.Вставить("Номер",<<?>>Номер); (Проверка: Тонкий клиент) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |