Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема 1C вылетает если делать изменения в табличном поле (число прочтений - 3426 )
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
1C вылетает если делать изменения в табличном поле
11. Января 2010 :: 13:21
Печать  
Есть табличное поле и есть список "дерево" при выборе дерева у меня в табличном поле создаются колонки. Сначала при выборе группы очищаю все колонки, потом в новь создаю.. в первый раз колонки табличного поля создаются, но при выборе еще раз родителя ,  если еще раз очищать колокни и в новь создавать, 1С просто закрывается Печаль Может кто сталкивался? Может нужно заранее создавать колонки ТП и потом ираться с видимостью.. Не получается каждый раз стирать и создаватьь колонки...
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #1 - 11. Января 2010 :: 14:06
Печать  
Вот кусок кода:

Код
Выбрать все
Процедура СоздатьДопКолонки(ПолныйПутьГруппы)
Сообщить("СоздатьДопКолонки" );


СпПараметрыТаблиц = СоздатьОбъект("Справочник.ПараметрыТаблиц");
Список = СоздатьОбъект("СписокЗначений");
СписокПриязки = СоздатьОбъект("СписокЗначений");
СписокПараметры = СоздатьОбъект("СписокЗначений");
СписокПараметров = СоздатьОбъект("СписокЗначений");
Колонки = ТабПоле.Колонки;


	Колонки.Очистить();




	Колонка = Колонки.Добавить("Код");
	Колонка.Заголовок = "Код";
	Колонка.Ширина = 18 ;

	Колонка.Данные = "Код";
	Колонка.Видимость = 1;


	Колонка = Колонки.Добавить("Наименование");
	Колонка.Заголовок = "Наименование товара:";

	Колонка.Данные = "Наименование";
	Колонка.Видимость = 1;




СтатусВозврата(0);
Возврат;

 



Если создавать только колонку Код.  То все работает.
Если создавать колонку код и наименование, то 1С вылетает.

Вот еще кусок кода:

Код
Выбрать все
Процедура ПолучитьЭлементыГруппы(Группа)
ТекущаяГруппа  = Группа;
Контейнер.УдалитьСтроки();

СпНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
СпНоменклатура.ИспользоватьРодителя(Группа.ТекущийЭлемент());
СпНоменклатура.ВыбратьЭлементы(1);
Пока СпНоменклатура.ПолучитьЭлемент() = 1 Цикл
	Если СпНоменклатура.ЭтоГруппа() = 0 Тогда

	Контейнер.НоваяСтрока();
	Контейнер.Код = СпНоменклатура.Код;
	Контейнер.Наименование = СокрЛП(СпНоменклатура.ПолнНаименование);
	Контейнер.НомерСтрСорт = Число(СпНоменклатура.НомерСтрСорт);
	КонецЕсли;

КонецЦикла;

Контейнер.Сортировать("НомерСтрСорт+,Наименование+");
СоздатьДопКолонки(ТекущаяГруппа.ПолноеНаименование());
ТабПоле.ОбновитьСтроки();

КонецПроцедуры // ПолучитьЭлементыГруппы

 

  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #2 - 11. Января 2010 :: 14:21
Печать  
С трудом понял..
Но попробуй прежде чем очищать колонки - очистить поставщика данных. (ТП.ПоставщикДанных="")
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1C вылетает если делать изменения в табличном поле
Ответ #3 - 11. Января 2010 :: 14:26
Печать  
JohnyDeath писал(а) 11. Января 2010 :: 14:21:
С трудом понял..
Но попробуй прежде чем очищать колонки - очистить поставщика данных. (ТП.ПоставщикДанных="")


Я тоже Улыбка


(0) Что является поставщиком ТП ?
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #4 - 11. Января 2010 :: 14:57
Печать  
Извените, сегодня отмечаю днюху на работе Улыбка

JohnyDeath - спасибо! работает!
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #5 - 11. Января 2010 :: 14:58
Печать  
Поставщик ТаблицаЗначений Смех
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #6 - 11. Января 2010 :: 14:59
Печать  
Поздравляю!
Каково это, иметь ДР 11 января в России?  Подмигивание
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #7 - 11. Января 2010 :: 15:12
Печать  
Да это не у меня днюха Улыбка)) А у нашего дизайнера....  Смех
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: 1C вылетает если делать изменения в табличном поле
Ответ #8 - 11. Января 2010 :: 15:18
Печать  
Если в процедуре которая создает колонки, в самом конце написать
СтатусВозврата(0);
Возврат;  

Тогда работает
А если не этого не делать, то 1С вылетает. Не могу понять почему...

Вот полный код:
Код
Выбрать все
 //======================================================================
Процедура СоздатьДопКолонки(ПолныйПутьГруппы)
Сообщить("СоздатьДопКолонки" );


СпПараметрыТаблиц = СоздатьОбъект("Справочник.ПараметрыТаблиц");
Список = СоздатьОбъект("СписокЗначений");
СписокПриязки = СоздатьОбъект("СписокЗначений");
СписокПараметры = СоздатьОбъект("СписокЗначений");
СписокПараметров = СоздатьОбъект("СписокЗначений");
Колонки = ТабПоле.Колонки;

ТабПоле.ПоставщикДанных  = "";
	Колонки.Очистить();




	Колонка = Колонки.Добавить("Код");
	Колонка.Заголовок = "Код";
	Колонка.Ширина = 18 ;

	Колонка.Данные = "Код";
	Колонка.Видимость = 1;



		Колонка = Колонки.Добавить("ElementVBase");
	Колонка.Заголовок = "ElementVBase";
	Колонка.Ширина = 18 ;

	Колонка.Данные = "ElementVBase";
	Колонка.Видимость = 1;


	Колонка = Колонки.Добавить("Вверх");
	Колонка.Заголовок = "Вверх:";
	Колонка.Ширина = 16;
	Колонка.Данные = "Вверх";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 0;
Колонка.УстановитьКартинкиСтрок(КартинкаВверх,);




	Колонка = Колонки.Добавить("Вниз");
	Колонка.Заголовок = "Вниз:";
	Колонка.Ширина = 16;
	Колонка.Данные = "Вниз";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 0;
Колонка.УстановитьКартинкиСтрок(КартинкаВниз,);






	Колонка = Колонки.Добавить("Флаг");
	Колонка.Заголовок = "Исключение:";
	Колонка.Ширина = 25 ;
	Колонка.Данные = "Флаг";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 0;


	Колонка = Колонки.Добавить("Флаг1");
	Колонка.Заголовок = "Исключение:";
	Колонка.Ширина = 50 ;
	Колонка.Данные = "Флаг1";
	Колонка.Видимость = 0;
	Колонка.ИзменениеРазмера = 0;



	Колонка = Колонки.Добавить("Наименование");
	Колонка.Заголовок = "Наименование товара:";
    Колонка.Ширина = 200;
	Колонка.Данные = "Наименование";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 1;






	Колонка = Колонки.Добавить("NewDate");
	Колонка.Заголовок = "Дата добавления:";
	Колонка.Ширина =30;

	Колонка.Данные = "NewDate";
	Колонка.Видимость = 0;
	Колонка.ИзменениеРазмера = 1;







    Колонка = Колонки.Добавить("ФотоНаименование");
	Колонка.Заголовок = "Фото:";
	Колонка.Ширина = 20 ;
	Колонка.Данные = "ФотоНаименование";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 0;
	Колонка.УстановитьКартинкиСтрок(КартинкаПримечание,);






		Колонка = Колонки.Добавить("НомерСтрСорт");
	Колонка.Заголовок = "Сорт:";
	Колонка.Ширина = 100;

	Колонка.Данные = "НомерСтрСорт";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 1;









//
//		Колонка = Колонки.Добавить("Ожидается");
//	Колонка.Заголовок = "Ожидается:";
//	Колонка.Ширина = 10 ;
//
//	Колонка.Данные = "Ожидается";
//	Колонка.Видимость = 1;
//	Колонка.ИзменениеРазмера = 1;

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

	Если ПустоеЗначение(СписокПараметры) = 0  Тогда

    ГалТип = СписокПараметров.ПолучитьЗначение(1,); //Полу
	КонецЕсли;

	Колонка = Колонки.Добавить(СписокПриязки.ПолучитьЗначение(ном,) );
	Колонка.Заголовок = Список.ПолучитьЗначение(ном,)  ;


	Колонка.Данные = СписокПриязки.ПолучитьЗначение(ном,);
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 1;
	Если Число(ГалТип) =  2 Тогда
	Колонка.Ширина = 30;
	Колонка.ГоризонтальноеВыравнивание = 2;
	е(ном,)),СокрЛП(СписокПриязки.ПолучитьЗначение(ном,)));
	КонецЕсли;


	КонецЦикла;




КонецЕсли;




	Колонка = Колонки.Добавить("Котировка");
	Колонка.Заголовок = "Котировка:";
	Колонка.Ширина = 20;

	Колонка.Данные = "Котировка";
	Колонка.Видимость = 1;
	Колонка.ИзменениеРазмера = 0;
	Колонка.УстановитьКартинкиСтрок(КартинкаКотировка,);



	Колонка = Колонки.Добавить("КолВо");
	Колонка.Заголовок = "Наличие:";
	Колонка.Ширина = 80 ;
	Колонка.Данные = "КолВо";
	Колонка.Видимость = 0;
	Колонка.ИзменениеРазмера = 1;
	ТабПоле.ПоставщикДанных  = Постав;

	СтатусВозврата(0);
	Возврат;


КонецПроцедуры // СоздатьКолонки

Процедура ПолучитьЭлементыГруппы(Группа)
ТекущаяГруппа  = Группа;
Контейнер.УдалитьСтроки();
СпНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
СпНоменклатура.ИспользоватьРодителя(Группа.ТекущийЭлемент());
СпНоменклатура.ВыбратьЭлементы(1);
Пока СпНоменклатура.ПолучитьЭлемент() = 1 Цикл
	Если СпНоменклатура.ЭтоГруппа() = 0 Тогда
	Контейнер.НоваяСтрока();
	Контейнер.Код = СпНоменклатура.Код;
	Контейнер.Наименование = СпНоменклатура.ПолнНаименование;
	Контейнер.НомерСтрСорт = СпНоменклатура.НомерСтрСорт;
	КонецЕсли;
КонецЦикла;
Контейнер.Сортировать("НомерСтрСорт+,Наименование+");
СоздатьДопКолонки(ТекущаяГруппа.ПолноеНаименование());
КонецПроцедуры
 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать