Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Записать в ячейку индексированной таблицы таблицу значений (число прочтений - 4059 )
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Записать в ячейку индексированной таблицы таблицу значений
17. Декабря 2010 :: 15:11
Печать  
При записи в ячейку индексированной таблицы таблицы значения записывается только последняя таблица




                 итТзДокумент.УстановитьЗначение(Строка_т, ИмяКолонкиДанных, СоздатьОбъект("ТаблицаЗначений"));
                 
Шаблон("[ш_Выгрузить(тзВидыРабот,итТзДокумент." + ИмяКолонкиДанных + ")]");



Функция ш_Загрузить(Таблица, ТаблицаВыгрузки)
     Таблица.Загрузить(ТаблицаВыгрузки);
     Возврат "";
  КонецФункции      
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #1 - 17. Декабря 2010 :: 15:31
Печать  
Одно непонятно, зачем это делать через ж.. т.е через шаблон ?

+ надо наверное во вновь создаваемую ТЗ что-то загрузить, а не наеборот ?
  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #2 - 20. Декабря 2010 :: 06:21
Печать  
А потому что в цикле изменяеться ИмяКолонки
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #3 - 20. Декабря 2010 :: 06:45
Печать  
И что?
  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #4 - 20. Декабря 2010 :: 07:07
Печать  
Ну так предложите как.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #5 - 20. Декабря 2010 :: 07:10
Печать  
Нам отсюда не видно, что творишь.
Больше кода.
И что откуда и куда надо записать.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #6 - 21. Декабря 2010 :: 05:20
Печать  
Ты удивительно точный код нам дал Печаль
Шаблон("[ш_Выгрузить(тзВидыРабот,итТзДокумент." + ИмяКолонкиДанных + ")]");
а дал Функция ш_Загрузить
и т.д.
И хочешь, чтобы мы тебе все решили ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #7 - 21. Декабря 2010 :: 09:04
Печать  
Извиняюсь. Действительно не ту функцию выгрузить

Функция ш_Загрузить(Таблица, ТаблицаВыгрузки)
     Таблица.Загрузить(ТаблицаВыгрузки);
     Возврат "";
  КонецФункции      

При выполнении шаблона вызывается эта функция. Не ту скопировал
  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #8 - 21. Декабря 2010 :: 09:05
Печать  
вот правильная

Функция ш_Выгрузить(Таблица, ТаблицаДляВыгрузки)
     Таблица.Выгрузить(ТаблицаДляВыгрузки);
     Возврат "";
КонецФункции
  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #9 - 21. Декабря 2010 :: 09:07
Печать  
тзВидыРабот - таблица значений

а вторая таблица Индексированная таблица
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #10 - 21. Декабря 2010 :: 09:45
Печать  
voka_64 писал(а) 21. Декабря 2010 :: 09:07:
тзВидыРабот - таблица значений
а вторая таблица Индексированная таблица

А в 0-м посте у тебя вторая таблица - тоже ТЗ.

почему нельзя сделать вот так:
Код
Выбрать все
времТЗ = СоздатьОбъект("ТаблицаЗначений");
тзВидыРабот.Выгрузить(времТЗ);
итТзДокумент.УстановитьЗначение(Строка_т, ИмяКолонкиДанных, времТЗ); 

  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #11 - 21. Декабря 2010 :: 11:52
Печать  
Если использовать тзДокумент.УстановитьЗначение то во всех ячейках будет присвоена последняя ТаблицаЗначений которую записываю в ячеку
  
Наверх
 
IP записан
 
voka_64
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 22. Апреля 2009
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #12 - 21. Декабря 2010 :: 12:40
Печать  
Спасибо JohnyDeath
Именно так и работает через временную таблицу.
Ну почему напрямую не работает???

Еще раз большое спасибо.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #13 - 21. Декабря 2010 :: 12:40
Печать  
Не обломался и написал:
Код
Выбрать все
Процедура Сформировать()
	итТзДокумент = СоздатьОбъект("ИндексированнаяТаблица");
	итТзДокумент.НоваяКолонка("Первая");
	итТзДокумент.НоваяКолонка("Вторая");

	КолКолонок = итТзДокумент.КоличествоКолонок();
	КолСтрок = 10;
	Для номСтроки=1 По КолСтрок Цикл
		итТзДокумент.НоваяСтрока();
		Для номСтолбца=1 По КолКолонок Цикл
			ИмяКолонкиДанных = итТзДокумент.ИмяКолонки(номСтолбца);
			времТЗ = СоздатьОбъект("ТаблицаЗначений");
			времТЗ.НоваяКолонка(ИмяКолонкиДанных);
			Для вр=1 По КолСтрок Цикл
				времТЗ.НоваяСтрока();
				ЗначениеСтроки = "Строка основной таблицы № "+номСтроки+", колонка № "+номСтолбца;
				ки);
			КонецЦикла;
			Строка_т = итТзДокумент.КоличествоСтрок();
			итТзДокумент.УстановитьЗначение(Строка_т, ИмяКолонкиДанных, времТЗ);
		КонецЦикла;
	КонецЦикла;

	вз = 0;
	итТзДокумент.ВыбратьСтроку(вз,"выбери строку");
	Если вз>0 Тогда
		Для й=1 По КолКолонок Цикл
			ИмяКолонкиДанных = итТзДокумент.ИмяКолонки(й);
			времТЗ = итТзДокумент.ПолучитьЗначение(вз, ИмяКолонкиДанных);
			времТЗ.ВыбратьСтроку();
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры
 



В каждой ячейке - своя ТЗ. Что я делаю не так?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Записать в ячейку индексированной таблицы таблицу значений
Ответ #14 - 21. Декабря 2010 :: 12:48
Печать  
Эх, видать не успел. Подправил пост.

Ладно, пробую как ты говоришь "не работает".
Меняю строку из предыдущего поста:
Код
Выбрать все
//[*]Евген, 21.12.2010
			//итТзДокумент.УстановитьЗначение(Строка_т, ИмяКолонкиДанных, времТЗ);
			итТзДокумент.УстановитьЗначение(Строка_т, ИмяКолонкиДанных, СоздатьОбъект("ТаблицаЗначений"));
			итТзДокумент.ПолучитьЗначение(номСтроки, ИмяКолонкиДанных).Загрузить(времТЗ);
			//[*]_ 


Всё нормально
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать