|
Загрузка справочника через тонкого клиента | ☑ | ||
---|---|---|---|---|
0
Svirepy
07.10.11
✎
18:17
|
Сделал внешнюю обработку. В форме, в командной панели сделал кнопку "Загрузить". Привязал к ней команду формы. Текст:
&НаСервере Процедура Загрузить(Команда) Если Объект.ТабНоменклатуры.Количество()=0 Тогда //грузим из файла Возврат; Иначе //грузим в 1с Номенклатура = Справочники.Номенклатура; Для ном=1 По Объект.ТабНоменклатуры.Количество() Цикл ТекСтр=Объект.ТабНоменклатуры.Получить(ном); Ном = Номенклатура.НайтиПоРеквизиту("Артикул",ТекСтр.Артикул); Если НЕ Ном=Номенклатура.ПустаяСсылка() Тогда Сообщить("Найдена "+Ном.Наименование); Продолжить; КонецЕсли; ГрНом = Номенклатура.НайтиПоНаименованию(ТекСтр.Группа); Если ГрНом=Номенклатура.ПустаяСсылка() Тогда ГрНом = Номенклатура.СоздатьГруппу(); ГрНом.Наименование = ТекСтр.Группа; ГрНом.Записать(); КонецЕсли; Ном = Номенклатура.СоздатьЭлемент(); Ном.Артикул = ТекСтр.Артикул; Ном.Наименование = ТекСтр.Наименование; Ном.НаименованиеПолное = ТекСтр.Наименование; Ном.Родитель = ГрНом.Ссылка; Ном.Записать(); КонецЦикла; Сообщить("Загрузка окончена!"); КонецЕсли; КонецПроцедуры Полное ощущение, что процедура вообще не вызывается нажатием кнопки... Хэлп, плиз!! |
|||
1
Amra
07.10.11
✎
18:19
|
Видимо всегда Объект.ТабНоменклатуры.Количество()=0
|
|||
2
Svirepy
07.10.11
✎
18:20
|
ЗЫ. В форме есть таблица значений с именем "ТабНоменклатуры", которая заполняется из сsv-файла. В форме весь список номенклатуры появляется...
|
|||
3
Svirepy
07.10.11
✎
18:21
|
Пробовал поставить Сообщить в самом начале процедуры - не сообщает ничего...
|
|||
4
Mort
07.10.11
✎
18:21
|
(2) Ты забыл ещё упомянуть что после "Привязал к ней команду формы." поставил ей директиву на сервере.
|
|||
5
Amra
07.10.11
✎
18:21
|
(3) И кому сервер должен чтото "сообщить"?
|
|||
6
shuhard
07.10.11
✎
18:22
|
(4) + 100500
|
|||
7
Svirepy
07.10.11
✎
18:31
|
Моrt, что ты имеешь в виду?
Амра, пусть хоть кому-нить сообщит! :) |
|||
8
shuhard
07.10.11
✎
18:39
|
(7) вызов Загрузить в коде формы модуля покажи
|
|||
9
Svirepy
07.10.11
✎
18:42
|
Так его и показал в самом первом сообщении. Это он и есть.
|
|||
10
shuhard
07.10.11
✎
18:44
|
(9) а теперь внимательно читай (4)
|
|||
11
Mort
07.10.11
✎
18:44
|
(9) У тебя к событию кнопки привязана процедура, которая живет только на сервере. Раздели на две процедуры. &НаКлиенте событие, а оттуда вызов уже процедуры &наСервере.
|
|||
12
Svirepy
07.10.11
✎
18:45
|
Ага... Заработало вот так:
&НаСервере Функция ДобавитьНоменклатуру(Артикул,Наименование,Группа) Номенклатура = Справочники.Номенклатура; Ном = Номенклатура.НайтиПоРеквизиту("Артикул",Артикул); Если НЕ Ном=Номенклатура.ПустаяСсылка() Тогда Возврат 0; КонецЕсли; ГрНом = Номенклатура.НайтиПоНаименованию(Группа); Если ГрНом=Номенклатура.ПустаяСсылка() Тогда ГрНом = Номенклатура.СоздатьГруппу(); ГрНом.Наименование = Группа; ГрНом.Записать(); КонецЕсли; Ном = Номенклатура.СоздатьЭлемент(); Ном.Артикул = Артикул; Ном.Наименование = Наименование; Ном.НаименованиеПолное = Наименование; Ном.Родитель = ГрНом.Ссылка; Ном.Записать(); Возврат 1; КонецФункции &НаКлиенте Процедура Загрузить() Если Объект.ТабНоменклатуры.Количество()=0 Тогда //грузим из файла ЗаполнитьТаблицуФормы(); Иначе //грузим в 1с Для ном=1 По Объект.ТабНоменклатуры.Количество() Цикл ТекСтр=Объект.ТабНоменклатуры.Получить(ном); ДобавитьНоменклатуру(ТекСтр.Артикул,ТекСтр.Наименование,ТекСтр.Группа); КонецЦикла; Сообщить("Загрузка окончена!"); КонецЕсли; КонецПроцедуры |
|||
13
Svirepy
07.10.11
✎
18:48
|
Спасибо огромное всем!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |