Имя: Пароль:
1C
 
8.2 данные из текстового файла в таблицу значения.
0 AleXxX_lag
 
10.08.10
16:29
Добрый день! Подскажите пожалуйста с таким вопросом.
Как в управляемом приложении выгрузить данные из текстового файла в таблицу значений? У меня при такой попытке пишет что мол ТаблицаЗначений неизвестное значение.
1 Defender aka LINN
 
10.08.10
16:32
Правильно. Не существует на клиенте никаких таблиц значений.
2 AleXxX_lag
 
10.08.10
16:35
А как обойти ? ведь справочников на клиенте тоже не существует.
Я так понимаю что надо использововать общие модули. (для обработки на сервере) только пока не могу понять каким образом.
Ведь мне в каждом конкретном случае может понадобиться разные ТЗ. Подскажите?
хотя бы на небольшом примере?
3 almar
 
10.08.10
16:37
(2)

&НаКлиенте
Процедура Сформировать()
   СформироватьНаСервере()
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()

КонецПроцедуры
4 Defender aka LINN
 
10.08.10
16:37
(2) Можно и без общих модулей, форма на сервере тоже существует. Если вкратце - вызывать серверную процедуру, которая вернет текст, а уже на клиенте его писать в файл.
5 AleXxX_lag
 
10.08.10
16:46
а можно на примере допустим имеется файл "с:\Текст.txt"
со следующим содержанием.
1
2
3
4
5
...
N
для того чтобы получить весь текст в тз
[code]
ф  = Новый ТекстовыйДокумент;
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Строк");
ф.Прочитать("C:\Текст.txt");
ном=0;
КонДок=ф.КоличествоСтрок();
Пока ном<>КонДок цикл
стр=ф.получитьСтроку(ном);
НС=ТЗ.Добавить();
НС.Строк=стр;
КонецЦикла;
[/code]
Как этот код можно переделать под 8.2?
6 AleXxX_lag
 
10.08.10
16:48
да забыл про приращение нома.
ф  = Новый ТекстовыйДокумент;
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Строк");
ф.Прочитать("C:\Текст.txt");
ном=0;
КонДок=ф.КоличествоСтрок();
Пока ном<>КонДок цикл
ном=ном+1;
стр=ф.получитьСтроку(ном);
НС=ТЗ.Добавить();
НС.Строк=стр;
КонецЦикла;
7 butterbean
 
10.08.10
16:48
(5) просто сделать все на сервере
8 AleXxX_lag
 
10.08.10
16:56
щас попробовал как посоветовал butterbean

&НаКлиенте
Процедура НаК(стрик)
Сообщить(стрик);    
КонецПроцедуры

&НаСервере
Процедура Команда1(Команда)
ф  = Новый ТекстовыйДокумент;
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Строк");
ф.Прочитать("C:\Текст.txt");
ном=0;
КонДок=ф.КоличествоСтрок();
Пока ном<>КонДок цикл
ном=ном+1;
стр=ф.получитьСтроку(ном);
НС=ТЗ.Добавить();
НС.Строк=стр;
КонецЦикла;
для Каждого Стр из ТЗ цикл
   НаК(Стр.Строк);
КонецЦикла;

КонецПроцедуры

теперь ругается так
{Форма.Форма.Форма(21,2)}: Процедура или функция с указанным именем не определена (НаК)
   <<?>>НаК(Стр.Строк); (Проверка: Сервер)
9 butterbean
 
10.08.10
16:59
(8) я так не советовал :-) чем не устраивает вызывать сообщить() с сервера??
10 AleXxX_lag
 
10.08.10
17:00
Сообщить() на сервере не работает.
11 butterbean
 
10.08.10
17:02
(10) че-то я походу отстал от жизни :-(
12 AleXxX_lag
 
10.08.10
17:05
(11) а может подскажешь как это все сделать чтобы заработало?
13 butterbean
 
10.08.10
17:07
(12) есть такая вещь СообщениеПользователю, но я че-то сомневаюсь до сих пор, что Сообщить() на сервере не работает...
14 AleXxX_lag
 
10.08.10
17:12
(13) Я проверил так
&НаКлиенте
Процедура Сообщаем()
Сообщить("123");
КонецПроцедуры
вот так она сообщает а
&НаСервере
Процедура Сообщаем()
Сообщить("123");
КонецПроцедуры
то так молчит
А сообщениеПользователю я щас попробую :)
15 AleXxX_lag
 
10.08.10
17:20
попробовал. тоже молчит.

&НаСервере
Процедура Команда1(Команда)
ф  = Новый ТекстовыйДокумент;
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Строк");
ф.Прочитать("C:\Текст.txt");
ном=0;

КонДок=ф.КоличествоСтрок();

Пока ном<>КонДок цикл
ном=ном+1;
стр=ф.получитьСтроку(ном);
НС=ТЗ.Добавить();
НС.Строк=стр;
КонецЦикла;

для Каждого Стр из ТЗ цикл
Сообщение = Новый СообщениеПользователю();
Текст =Стр.Строк;
   Сообщение.Текст = Текст;
//Сообщение.УстановитьДанные(ОбъектДанных);
Сообщение.Сообщить();
   
КонецЦикла;

КонецПроцедуры
16 almar
 
10.08.10
17:22
У тебя кнопка вызывает серверную процедуру? Так нельзя.

&НаСервере
Процедура Команда1(Команда)
17 AleXxX_lag
 
10.08.10
17:24
(16) а как надо правильно?
18 almar
 
10.08.10
17:33
(17)

&НаКлиенте
Процедура Команда1(Команда)
   СформироватьНаСервере()
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()

КонецПроцедуры
19 AleXxX_lag
 
10.08.10
21:42
(18) а так получилось. Спасибо за помощь :) Всем удачи!!!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс