vandalsvq писал(а) 24. Мая 2010 :: 15:35:Оказалось, что внесенные изменения необходимо по хорошему внести везде. Новый официальный релиз будет не ранее конца недели. Запасаемся терпением.
При желании внесения нового функционала, или исправления старых багов прошу напомнить. Если нечего, то нечего.
ПоставщикДанных.Справочник
1. Хотелось бы, что бы при изменении режима иерархического просмотра сохранялась текущая позиция.
Я у себя решил эту проблему так:
Процедура ПриИзмененииИерархическогоПросмотра()
Если ИзменятьИерархическийПросмотр = 0 Тогда
ийПросмотр);
Возврат;
КонецЕсли;
//Добавления Bill
Если ИерархическийПросмотр = 0 Тогда
ТекущийЭлемент = ТабличноеПоле.ТекущаяСтрока;
Если ПустоеЗначение(ТекущийЭлемент) = 0 Тогда
РодительВерхнегоУровня = ТекущийЭлемент.Родитель;
КонецЕсли;
КонецЕсли;
//Конец добавлений
ИерархическийПросмотр = ?(ИерархическийПросмотр = 1,0,1);
ийПросмотр);
ТабличноеПоле.Обновить();
КонецПроцедуры
Процедура Обновить() Экспорт
ТекКолонка = ТабличноеПоле.ТекущаяКолонка;
ТекСтрока = ТабличноеПоле.ТекущаяСтрока;
СформироватьТекстЗапросаСписка();
ЗаполнитьШапку();
ЗаполнитьПодвал();
УстановитьПоставщикаДанных();
АктивизацияКнопокОтбора();
ОбновитьСтрокиТабличногоПоля();
АктивизироватьСтроку(ТекСтрока); //Bill убран комментарий
ТабличноеПоле.ТекущаяКолонка = ТекКолонка; //Bill убран комментарий
КонецПроцедуры // Обновить
2. Хотелось бы, чтобы можно было копировать не только элемент, но и группу:
Процедура СкопироватьСтроку() Экспорт
Если ПраваПользователя.ВводНового = 0 Тогда
Предупреждение("Недостаточно прав доступа.",25);
Возврат;
КонецЕсли;
ТекущийЭлемент = ТабличноеПоле.ТекущаяСтрока;
Если ПустоеЗначение(ТекущийЭлемент) = 1 Тогда
Возврат;
КонецЕсли;
//Изменения Bill
//Было:
//Если ТекущийЭлемент.ЭтоГруппа() = 1 Тогда
// Возврат;
//КонецЕсли;
//Стало:
ЭтоГруппа = ТекущийЭлемент.ЭтоГруппа();
//Конец изменений
ИмяМетода = Сервис.ПолучитьИмяМетода(КонтейнерТабличногоПоля,"ПередНачаломДобавления");
Если Информатор.МетодСуществует(КонтекстФормы,ИмяМетода) = 1 Тогда
СтруктураПараметров = СоздатьОбъект("СписокЗначений");
СтруктураПараметров.Установить("ОбъектТП",ТабличноеПоле.ЭлементУправления);
СтруктураПараметров.Установить("Копирование",1);
СтруктураПараметров.Установить("Родитель",РодительВерхнегоУровня);
//Изменения Bill
//Было:
//СтруктураПараметров.Установить("ЭтоГруппа",0);
//Стало:
СтруктураПараметров.Установить("ЭтоГруппа",ЭтоГруппа);
//Конец изменений
СтруктураПараметров.Установить("ФСО",-1);
араметров);
Если СтруктураПараметров.Получить("ФСО") = 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если СпособРедактирования = 1 Тогда // редактирование в отдельном окне
КонтФормы = "";
//Изменения Bill
//Было:
елец);
//Стало:
а,Владелец);
//Конец изменений
КонтФормы.Наименование = ТекущийЭлемент.Наименование;
Для НомерРеквизита = 1 По МетаСправочник.Реквизит() Цикл
МетаРеквизит = МетаСправочник.Реквизит(НомерРеквизита);
ЗначениеРеквизита = ТекущийЭлемент.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
КонтФормы.УстановитьАтрибут(МетаРеквизит.Идентификатор,ЗначениеРеквизита);
КонецЦикла;
КонтФормы.Форма.Обновить();
ИначеЕсли СпособРедактирования = 0 Тогда // редактирование в форме списка
// создаем новый элемент
Спр = СоздатьОбъект("Справочник."+ВидСправочника);
Спр.ИспользоватьВладельца(Владелец);
Спр.ИспользоватьРодителя(РодительВерхнегоУровня);
Спр.ИспользоватьДату(ДатаПериодическихРеквизитов);
//Изменения Bill
//Было:
//Спр.Новый();
//Стало:
Если ЭтоГруппа=0 Тогда
Спр.Новый();
Иначе
Спр.НоваяГруппа();
КонецЕсли;
//Конец изменений
Спр.Наименование = ТекущийЭлемент.Наименование;
Для НомерРеквизита = 1 По МетаСправочник.Реквизит() Цикл
МетаРеквизит = МетаСправочник.Реквизит(НомерРеквизита);
ЗначениеРеквизита = ТекущийЭлемент.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
Спр.УстановитьАтрибут(МетаРеквизит.Идентификатор,ЗначениеРеквизита);
КонецЦикла;
Спр.Записать();
// обновляем табличное поле
ОбновитьСтрокиТабличногоПоля();
// активизируем созданный элемент
АктивизироватьСтроку(Спр.ТекущийЭлемент());
КонецЕсли;
КонецПроцедуры // СкопироватьСтроку
Ну и вот это:
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/705#719