|
1c83 Бухня выборка по документам | ☑ | ||
---|---|---|---|---|
0
Юзер123
naïve
03.02.14
✎
14:14
|
Всем доброго дня. К стыду для себя обнаружил что не умею писать клинт серверные варианты обработок.
стоит задача для бухни написать выборку по документам и запихнуть ее в эксель. что то я запутался что должно быть на клиенте а что на сервере. Перем Эксель,Книга,Лист,ВсегоКолонок,ВсегоСтрок,ПутьКФайлу,НачДата,КонДата,Док; &НаСервере Процедура КнопкаВыполнитьНажатие(ВсегоСтрок) // Вставить содержимое обработчика. // Вставить содержимое обработчика. //Эксель = Новый COMОбъект("Excel.Application"); //ПутьКФайлу= "D:\Обмен1с\Анализ плановых цен КРОСС и КЭЗ.xlsx" ; //НомерЛиста =1; ////Следующая команда откроет книгу: //Книга = Эксель.WorkBooks.Open(ПутьКФайлу); // ////Перед тем, как начать считывание данных, укажем лист книги, с которого будем считывать данные: //Лист = Книга.WorkSheets(НомерЛиста); // // ////Итак, мы открыли книгу и выбрали лист, теперь посмотрим, сколько строк и колонок на выбранном листе: //ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; //ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; // ////Получим значения ячейки листа в строке НомерСтроки и в колонке НомерКолонки: Док = Документы.РеализацияТоваровУслуг; //НачДата = Дата("01.01.2013"); //КонДата = Дата("01.01.2014"); Выборка = Док.Выбрать(НачДата,КонДата); Пока Выборка.Следующий() цикл Для каждого СтрокаДок из Выборка.Товары цикл Сообщить(ВсегоСтрок); // цикл по строчкам файла Для НомерСтроки=9 по Число(ВсегоСтрок) цикл КодНоменВФайле = Лист.Cells(НомерСтроки, 3).Value; ЦенаВФайле = Лист.Cells(НомерСтроки, 9).Value; Если Сокрлп(КодНоменВФайле) = Сокрлп( СтрокаДок.Номенклатура.Код) тогда Если Сокрлп(ЦенаВФайле) ="" тогда Лист.Cells(НомерСтроки, 9).Value = СтрокаДок.Цена+"р." КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; Попытка Книга.SaveAs(ПутьКФайлу); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); КонецПопытки; КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) Эксель = Новый COMОбъект("Excel.Application"); ПутьКФайлу= "D:\Обмен1с\Анализ плановых цен КРОСС и КЭЗ.xlsx" ; НомерЛиста =1; //Следующая команда откроет книгу: Книга = Эксель.WorkBooks.Open(ПутьКФайлу); //Перед тем, как начать считывание данных, укажем лист книги, с которого будем считывать данные: Лист = Книга.WorkSheets(НомерЛиста); //Итак, мы открыли книгу и выбрали лист, теперь посмотрим, сколько строк и колонок на выбранном листе: ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; КнопкаВыполнитьНажатие(ВсегоСтрок); Эксель.Application.Quit(); КонецПроцедуры |
|||
1
Wobland
03.02.14
✎
14:16
|
что-нибудь совсем не похожее на это
|
|||
2
Юзер123
naïve
03.02.14
✎
14:17
|
(1) Вы очень помогли.
|
|||
3
Wobland
03.02.14
✎
14:18
|
(2) всегда пожалуйста, продолжайте наблюдения
|
|||
4
Юзер123
naïve
03.02.14
✎
14:32
|
совствеено все беда в том что на сервере когда делаю выборку по документам ее не видно в процедуре клиента.
|
|||
5
vicof
03.02.14
✎
14:33
|
(4) И не будет видно - на сервере сервеные типы, на клиенте - клиентские.
|
|||
6
ДенисЧ
03.02.14
✎
14:33
|
(4) дык и не увидишь....
Сгенери печатную форму а-ля отчёт, потом её в ексель сохрани... |
|||
7
Юзер123
naïve
03.02.14
✎
14:33
|
никогда до этого не писал подобные обработки. Наведите на мысль кто более сговорчив кто (1)
|
|||
8
Юзер123
naïve
03.02.14
✎
14:34
|
(6) не вариант. надо что бы обработка в готовый ексель пихала данные в нужные места
|
|||
9
Юзер123
naïve
03.02.14
✎
14:37
|
так нет никакого шанса перенести то что я на сервере получил на клиент?
|
|||
10
Юзер123
naïve
03.02.14
✎
14:38
|
ну или на клиенте выборку сделать?
|
|||
11
vicof
03.02.14
✎
14:39
|
(9) Читаем профразработку.
Клиент только отображает данные. |
|||
12
Юзер123
naïve
03.02.14
✎
14:39
|
(11) но сервер не умеет в эксель писать..
|
|||
13
Sasha_1CK
03.02.14
✎
14:39
|
(10) а зачем СОМ на клиенте?
Он вроде бы и на сервере запускается - а на сервере - че хотите то и передавайте |
|||
14
vicof
03.02.14
✎
14:40
|
(12) Правда?
|
|||
15
Sasha_1CK
03.02.14
✎
14:40
|
(12) точно?
|
|||
16
Юзер123
naïve
03.02.14
✎
14:40
|
(13) нет. пробовал. на сервере Офиса нет.
|
|||
17
Юзер123
naïve
03.02.14
✎
14:42
|
(14) (15) ну в начальном варианте весь код был на сервере . а на клиенте просто вызывалась процедура на сервере. но ругалась бухня на создание сом объекта
|
|||
18
Юзер123
naïve
03.02.14
✎
14:42
|
Офиса на сервере нет
|
|||
19
Юзер123
naïve
03.02.14
✎
14:46
|
я верно понимаю. все процедуру "На сераере" выполняются на компе где стоит сервер 1с?.
|
|||
20
Sasha_1CK
03.02.14
✎
14:48
|
Ну тогда пихаете свои данные в массивы- и уже массивы пробуете передать на клиента.
Все равно в екселе вам нужны только примитивные типы, текст, чсило и дата |
|||
21
Юзер123
naïve
03.02.14
✎
14:49
|
(20) если я поставлю на сервак оффис то поможет?
|
|||
22
Юзер123
naïve
03.02.14
✎
14:52
|
если я локально у себя на компе разверну базу бухни тож долно работать?
|
|||
23
Юзер123
naïve
03.02.14
✎
14:57
|
народ, подскажите.
|
|||
24
Sasha_1CK
03.02.14
✎
14:58
|
(22) по идее да
|
|||
25
Юзер123
naïve
03.02.14
✎
14:59
|
(24) а (20) ?
|
|||
26
Sasha_1CK
03.02.14
✎
15:01
|
ну вообще сам по себе СОМ &НаСервере запускается. В Вашем случае он запуститься не мог по причине отсутствия приложения - поэтому и 20 и 22 должны работать
|
|||
27
Юзер123
naïve
03.02.14
✎
15:05
|
(26) откуда запускать есть разница? с сервака или из локальной сети можно?. на сервере возможно не регана comcntr.dll была. помимо приложения.
|
|||
28
Юзер123
naïve
03.02.14
✎
15:06
|
{Форма.Форма.Форма(8,19)}: Тип не определен (Сomobject)
Эксель = Новый <<?>>Сomobject("Excel.Application"); (Проверка: Сервер) |
|||
29
ilyavorobyev
03.02.14
✎
15:07
|
(0) На Сервере получай запросом что надо, потом все в ТаблицуЗначений которая на форме и дальше на клиенте пихай ТЗ в Эксель, все просто
|
|||
30
Юзер123
naïve
03.02.14
✎
15:11
|
(29) таблица значений которая на форме? т.е. на форме обработки надо добавить тз. в процедуре сервера ее заполнить. и на клиенте заполнить ее данными ексель?
|
|||
31
ilyavorobyev
03.02.14
✎
15:17
|
(30) судя по твоей теме тебе надо в эксель запихнуть, хотя это роли не играет, да на форму тз туда все с сервера пихай из выборки и уже на клиенте из тз в эксель или из экселя в тз
|
|||
32
ukolabrother
03.02.14
✎
15:17
|
(29) вот это
|
|||
33
Wobland
03.02.14
✎
15:42
|
он вас таки отговорил от табличного документа?
|
|||
34
ilyavorobyev
03.02.14
✎
15:50
|
(33) должно быть все автоматизированно а тут с табличным еще ручками копипастить, низковато как то)))
|
|||
35
Юзер123
naïve
03.02.14
✎
15:54
|
(33) о чем ты?
(34) спасибо. все работет (31) все ок. другая беда. почему то выбока не видит документы за период.. когда я открываю базу бухни их там нет но глБух все видит. оО. фильтров нет. периода нет. контрагент нужный и организация. прова как у глБуха. |
|||
36
Юзер123
naïve
03.02.14
✎
15:56
|
все разобрались. Доблестные Бухи не туда запихнули реализацию.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |