helpf.pro
Регистрация

Как из регистра накопления открыть документ

uvp
28.05.2010 15:30Прочитано: 2032
Как из регистра накопления открыть документ по регистратору
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
28.05.2010 16:48Ответ № 1
Привет!
как- то так:
Код 1C v 8.х
 Регистратор.получитьформу().Открыть();   


А лучше покажи код, которым открыл свой регистр накопления.
uvp
31.05.2010 09:34Ответ № 2
В таблицузначений занесен Регистратор
как по текущей строке таблицы значений открыть
документ
E_Migachev
31.05.2010 09:43Ответ № 3
А таблицу значений ты перебираешь через Для каждого.... или вывел на форму и хочешь открыть по двойному щелку на документе?
uvp
31.05.2010 10:09Ответ № 4
Вывел на форму и хочу открыть документ Колонке Регистратор
uvp
31.05.2010 10:15Ответ № 5
В общем я просматриваю регистры накоплений
ТоварыНаскладах
и
ПартииТоваровНаСкладах
вывожу все записи в таблицу значений по выбранной номенклатуре
записи которые присутствую только в обно регистре
хочу открыть их документ при помощи свойства Регистратор
E_Migachev
31.05.2010 10:28Ответ № 6
У табличного поля какой тип значения? а если щелкунуть по регистратору - он не открывается?
uvp
31.05.2010 10:37Ответ № 7
Строка
не открывается я его вывел на Табличное Поле в форме
E_Migachev
31.05.2010 10:41Ответ № 8
не не то...
Как вывел на табличное поле?
uvp
31.05.2010 10:42Ответ № 9
А как открыть документ из регистра по регистратору
uvp
31.05.2010 10:43Ответ № 10
все записи скинул в таблицу значений
а таблицу в ТПоле на форме
uvp
31.05.2010 10:53Ответ № 11
СтруктураОтбора=Новый Структура("Номенклатура");
СтруктураОтбора.Номенклатура=Номенк;
Выборка=РегистрыНакопления.ПартииТоваровНаСкладах.Выбрать(,,СтруктураОтбора);
КЧ=Новый КвалификаторыЧисла(12,2);
КС=Новый КвалификаторыСтроки(120);
Массив=Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС=Новый ОписаниеТипов(Массив, , КС);
Массив.Очистить();
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ=Новый ОписаниеТипов(Массив, , КЧ);
ТабЗнач=Новый ТаблицаЗначений;
ТабЗнач.Колонки.Добавить("Регистратор",ОписаниеТиповС,"Регистратор");
ТабЗнач.Колонки.Добавить("Период",ОписаниеТиповС,"Период");
ТабЗнач.Колонки.Добавить("Номенклатура",ОписаниеТиповС,"Номенклатура");
ТабЗнач.Колонки.Добавить("Склад",ОписаниеТиповС,"Склад");
ТабЗнач.Колонки.Добавить("Количество",ОписаниеТиповС,"Количество");
ТабЗнач.Колонки.Добавить("Стоимость",ОписаниеТиповС,"Стоимость");
ТабЗнач.Колонки.Добавить("ДокументОприходования",ОписаниеТиповС,"ДокументОприходования");

Пока Выборка.Следующий() цикл
Стр= ТабЗнач.Добавить();
Стр.Номенклатура=Выборка.Номенклатура;
Стр.Склад=Выборка.Склад;
Стр.Период=Выборка.Период;
Стр.Регистратор=Выборка.Регистратор;
Стр.ДокументОприходования=Выборка.ДокументОприходования;
Стр.Количество=Выборка.Количество;
Стр.Стоимость=Выборка.Стоимость;
КонецЦикла;
E_Migachev
31.05.2010 10:55Ответ № 12
теперь у табличного поля создай событие Выбор и в процедуре напиши:
Код 1C v 8.х
 Процедур ТЗвыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=ложь;
Попытка
Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя].ПолучитьФорму().Открыть();
Исключение
Предупреждение( Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя]);
КонецПопытки;
КонецПроцедуры

После этого, щелкая по ячейкам Табличного поля, то что может открыться(документы, справочники) - откроется, иначе содержимое покажется как предупреждение!
uvp
31.05.2010 10:55Ответ № 13
ЭлементыФормы.ТПоле2.Значение=ТабЗнач;
ЭлементыФормы.ТПоле2.СоздатьКолонки();
uvp
31.05.2010 11:01Ответ № 14
Выдало ошибку

{Отчет.ПросмотрНакоплений.Форма.ФормаОтчета(596)}: Поле объекта не обнаружено (ТекущаяКолока)
Предупреждение( Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя]);
uvp
31.05.2010 11:09Ответ № 15
Ошибка пропала

Выходит форма с номером и датой документа
и кнопкой нажатие на которую закрывает форму
uvp
31.05.2010 11:10Ответ № 16
Выходит предупреждение
uvp
31.05.2010 11:17Ответ № 17
документ не открывается
E_Migachev
31.05.2010 11:20Ответ № 18
Э... давай по порядку:
1. ты создал ТЗ -ТабЗнач
2. теперь эту ТЗ выводим в табличное поле(заоздай на форме ТабПоле -с именем ТЗРезультат):
3. добавь код вывода ТабЗнач в ТабПоле
Код 1C v 8.х
 ТЗРезультат=ТабЗнач; // ТЗРезультат - это Табличное Поле на Форме, присваиваем ему таблицу значений 
//Создаем колонки в табличном поле, после чего видим в поле тз
ЭлементыФормы.ТЗРезультат.СоздатьКолонки();


и потм для ТабПоля сделай то, что я написал в (12)
uvp
31.05.2010 11:25Ответ № 19
ну создал а что далее
uvp
31.05.2010 11:27Ответ № 20
выходит только предупреждение
uvp
31.05.2010 11:28Ответ № 21
Исключение
Предупреждение( Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя]);
КонецПопытки;
E_Migachev
31.05.2010 11:30Ответ № 22
Тебе ну нужно было типы описывать *09
замени код, на:
Код 1C v 8.х
 СтруктураОтбора=Новый Структура("Номенклатура");
СтруктураОтбора.Номенклатура=Номенк;
Выборка=РегистрыНакопления.ПартииТоваровНаСкладах.Выбрать(,,СтруктураОтбора);
ТабЗнач=Новый ТаблицаЗначений;
ТабЗнач.Колонки.Добавить("Регистратор");
ТабЗнач.Колонки.Добавить("Период");
ТабЗнач.Колонки.Добавить("Номенклатура");
ТабЗнач.Колонки.Добавить("Склад");
ТабЗнач.Колонки.Добавить("Количество");
ТабЗнач.Колонки.Добавить("Стоимость");
ТабЗнач.Колонки.Добавить("ДокументОприходования");
Пока Выборка.Следующий() цикл
Стр= ТабЗнач.Добавить();
Стр.Номенклатура=Выборка.Номенклатура;
Стр.Склад=Выборка.Склад;
Стр.Период=Выборка.Период;
Стр.Регистратор=Выборка.Регистратор;
Стр.ДокументОприходования=Выборка.ДокументОприходования;
Стр.Количество=Выборка.Количество;
Стр.Стоимость=Выборка.Стоимость;
КонецЦикла;

// Далее вывод в таб поле
ТЗРезультат=ТабЗнач; // ТЗРезультат - это Табличное Поле на Форме, присваиваем ему таблицу значений
ЭлементыФормы.ТЗРезультат.СоздатьКолонки();

//Для обработки двойного щелчка по ячейке в ТабПоле
Процедура ТЗвыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=ложь;
Попытка
Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя].ПолучитьФорму().Открыть();
Исключение
Предупреждение( Элемент.ТекущиеДанные[Элемент.ТекущаяКолока.Имя]);
КонецПопытки;
КонецПроцедуры

так должно все открываться при двойном щелчке по ячейке Табличного Попя
uvp
31.05.2010 11:36Ответ № 23
Круто получилось
Спасибо ОГРОМНОЕ
E_Migachev
31.05.2010 11:39Ответ № 24
*06 пожалуйста, закрывай вопрос, если все *07
uvp
31.05.2010 12:37Ответ № 25
Вопрос закрыт!
vasyaby
13.10.2011 03:10Ответ № 26
Код 1C v 8.2 УП
 
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СтандартнаяОбработка = ложь;
ТекДанные = Элементы.Список.ТекущиеДанные;
если ТекДанные <> неопределено тогда
ПараметрыФормы = Новый Структура("Ключ", ТекДанные.Регистратор);
ФормаРегистратора = ОткрытьФорму("Документ."+ПолучитьИмяОбъекта(ТекДанные.Регистратор)+".ФормаОбъекта", ПараметрыФормы);
ФормаРегистратора.Открыть();
конецесли;
КонецПроцедуры

&НаСервере
Функция ПолучитьИмяОбъекта(ОбъектСсылка)
возврат ОбъектСсылка.Метаданные().Имя;
конецфункции

Изменено 13.10.11 10:12:52 по причине: Разукрасил код
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.