|
Вывод из Excel цен | ☑ | ||
---|---|---|---|---|
0
Mitka90
14.12.17
✎
13:08
|
Здравствуйте! Возник такой вопрос: как можно вывести из xls-файла (Excel 97-2003) данные из разных столбцов в табличную часть, при этом чтобы они не перебивались (например, в отчёте одного вида нужно вывести данные из столбца 29 в "Цены для физ.лиц" и "Цены для юр.лиц", а в другой - из 61 и 59 соответственно, но это должно выполняться всё в одном документе):
Процедура ДействияФормыГрузимЦены(Кнопка) Если ЗначениеЗаполнено(файл) тогда сообщить(файл); док=получитьComобъект(файл); номстр=1; ии=0; нн=0; Сообщить(сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value)); пока сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value)<>"zzzzzz" цикл //смотрим код!!! ии=ии+1; Зкод=сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value); сообщить(Зкод); //код Знаим=сокрлп(""+док.SHeets("Лист").Cells(номстр,2).value); //наименование спр=справочники.Прейскурант.НайтиПоКоду(СокрЛП(Зкод)); Если спр.Ссылка<>справочники.Прейскурант.ПустаяСсылка() Тогда стро=Работы.Добавить(); стро.ПунктПрейскуранта=спр.Ссылка; стро.код=Зкод; стро.ценанас=сокрлп(""+док.SHeets("Лист").Cells(номстр,61).value); стро.ценаюл=сокрлп(""+док.SHeets("Лист").Cells(номстр,59).value); Иначе сообщить("не найден код="+Зкод); КонецЕсли; номстр=номстр+1; КонецЦикла; Конецесли; КонецПроцедуры |
|||
1
Kigo_Kigo
14.12.17
✎
13:28
|
В параметре Cells(номстр,1) Нопер строки,Номерколонки
|
|||
2
Kigo_Kigo
14.12.17
✎
13:31
|
стро.ценанас=сокрлп(""+док.SHeets("Лист").Cells(номстр,61).value) + " " + сокрлп(""+док.SHeets("Лист").Cells(номстр,59).value);
Так чтоль, чейт вопрос понять не могу |
|||
3
Mitka90
14.12.17
✎
15:42
|
Kigo_Kigo
в общем, должно быть так: в отчёте "Прейскурант-1" должны выводиться цены из столбца 29 в столбцы табличной части под названиями "Цены для физ.лиц" и "Цены для юр.лиц" (два одинаковых значения из "29"), а в отчёте "Прейскурант-2" - из столбцов 61 для физ.лиц и 59 - для юр.лиц (для них в табличной части предусмотрены столбцы "Цены для физ.лиц" и "Цены для юр.лиц". В данном случае, если использовать такой запрос, то из отчёта "Прейскурант-1" выводит всё как нужно, а из отчёта "Прейскурант-2" почти во всех полях, где цена, почему-то ничего не отображается. Если взять мой код, что выше я прилагал, то там ровным счётом всё наоборот + в "П-1" цены нигде не отображаются. |
|||
4
Mitka90
15.12.17
✎
14:40
|
Вот такой код получается, который выводит то, о чём я указал выше:
Процедура ДействияФормыГрузимЦены(Кнопка) Если ЗначениеЗаполнено(файл) тогда сообщить(файл); док=получитьComобъект(файл); номстр=1; ии=0; нн=0; Сообщить(сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value)); пока сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value)<>"zzzzzz" цикл//смотрим код!!! ии=ии+1; Зкод=сокрлп(""+док.SHeets("Лист").Cells(номстр,1).value); сообщить(Зкод);//код Знаим=сокрлп(""+док.SHeets("Лист").Cells(номстр,2).value);//наименование спр=справочники.Прейскурант.НайтиПоКоду(СокрЛП(Зкод)); Если спр.Ссылка<>справочники.Прейскурант.ПустаяСсылка() Тогда стро=Работы.Добавить(); стро.ПунктПрейскуранта=спр.Ссылка; стро.код=Зкод; стро.ценанас=сокрлп(""+док.SHeets("Лист").Cells(номстр,61).value) + " " + сокрлп(""+док.SHeets("Лист").Cells(номстр,29).value); стро.ценаюл=сокрлп(""+док.SHeets("Лист").Cells(номстр,59).value) + " " + сокрлп(""+док.SHeets("Лист").Cells(номстр,29).value); Иначе сообщить("не найден код="+Зкод); КонецЕсли; номстр=номстр+1; КонецЦикла; Конецесли; КонецПроцедуры |
|||
5
Базис
naïve
15.12.17
✎
15:18
|
Каждый тип цен завести в отдельный документ, отчёт строить по документам или регистрам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |