Подскажите Табл.Знач.

  • Автор темы -
  • Дата начала

Гость
#1
Здравствуйте всем.
Подскажите пожалуйста, 3 дня борюсь уже :)

Внешняя обработка, добавить в ТЗ из справочника Сотрудники при двойном нажатии на строке.
Что я недописываю, заранее спасибо.

Перем ТК;
//*************************************
Процедура ПриОткрытии()
ТЗ.Очистить();
ТЗ.НоваяКолонка(,,,,"№",1);
ТЗ.НоваяКолонка(,,,,"Сотрудник",4);
КонецПроцедуры
//*************************************
Процедура Открыть(ТЗ)
ТС=ТЗ.ТекущаяСтрока();
ТК=ТЗ.ТекущаяКолонка();
ОткрытьПодбор("Справочник.Сотрудники");
КонецПроцедуры
//*************************************
Процедура ОбработкаПодбора(ТС)
ТекЗнач=ТС;

Сообщить(ТС);
ТЗ.УстановитьЗначение(ТС,ТК,ТекЗнач);//тут ошибка
//Номер за пределами значения!
КонецПроцедуры
 

vbs

Well-Known Member
18.02.2007
1 708
3
#2
колонки у тебя без имени
надо так :
ТЗ.НоваяКолонка("Номер",,,,"№",1);
ТЗ.НоваяКолонка("Сотрудник",,,,,4);
да и
ТЗ.НоваяСтрока()
надо бы сделать, прежде, чем заполнять
 

Гость
#3
Поправил, но тот же эффект :)

Перем ТК;
//*************************************
Процедура ПриОткрытии()
ТЗ.Очистить();
ТЗ.НоваяКолонка("Номер",,,,"№",1);
ТЗ.НоваяКолонка("Сотрудник",,,,,4);
КонецПроцедуры
//*************************************
Процедура Открыть(ТЗ)

ТС=ТЗ.ТекущаяСтрока();
ТК=ТЗ.ТекущаяКолонка();
ОткрытьПодбор("Справочник.Сотрудники");
КонецПроцедуры
//*************************************
Процедура ОбработкаПодбора(ТС)
ТЗ.НоваяСтрока();
ТекЗнач=ТС;
Сообщить(ТС);
ТЗ.УстановитьЗначение(ТС,ТК,ТекЗнач);//тут ошибка
//Номер за пределами значения!
КонецПроцедуры
 

vbs

Well-Known Member
18.02.2007
1 708
3
#4
Перем ТС;
Процедура Открыть(ТЗ)
ТЗ.НоваяСтрока();
ТС=ТЗ.ТекущаяСтрока();
ТК=ТЗ.ТекущаяКолонка();
ОткрытьПодбор("Справочник.Сотрудники");
КонецПроцедуры
//*************************************
Процедура ОбработкаПодбора(ТекЗнач)
Сообщить(ТС);
ТЗ.УстановитьЗначение(ТС,ТК,ТекЗнач);//тут ошибка
//Номер за пределами значения!
КонецПроцедуры
 

Гость
#5
Спасибо за помощь! Теперь в строку попадает содержимое справочника, только не закрывается справочник после вычпокивания нужной фамилии. :)

Перем ТК, ТС;
//*************************************
Процедура ПриОткрытии()
ТЗ.Очистить();
ТЗ.НоваяКолонка("Номер",,,,"№",1);
ТЗ.НоваяКолонка("Сотрудник",,,,,4);
КонецПроцедуры
//*************************************
Процедура Открыть(ТЗ)

ТЗ.НоваяСтрока();
ТС=ТЗ.ТекущаяСтрока();
ТК=ТЗ.ТекущаяКолонка();
ОткрытьПодбор("Справочник.Сотрудники");

КонецПроцедуры
//*************************************
Процедура ОбработкаПодбора(ТекЗнач)

Сообщить(ТС);
ТЗ.УстановитьЗначение(ТС,ТК,ТекЗнач);

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

vbs

Well-Known Member
18.02.2007
1 708
3
#6
попробуй вместо ОткрытьПодбор использовать
ВвестиЗначение(ТекЗнач,"Справочник.Сотрудники");
 

Гость
#7
попробуй вместо ОткрытьПодбор использовать
ВвестиЗначение(ТекЗнач,"Справочник.Сотрудники");
В данной обработке мне нужен именно подбор, сложности которые у меня возникли с таблицей, тормозят написание основного проекта.
Просто тема ТЗ мною до конца не изучена, я её и выделил в отдельную обработу.

попробуй вместо ОткрытьПодбор использовать
ВвестиЗначение(ТекЗнач,"Справочник.Сотрудники");
Ась, разобрался :) , параметры подбора не расписал!
 

Гость
#8
А каким-нибудь способом можно скрыть или свернуть колонку в табличной части документа? Галка "Видимость" там погашена и в помошнике ничего похожего нет, только по таблицам значения.

Ан нет, нашел, сори.
 

vbs

Well-Known Member
18.02.2007
1 708
3
#9
Во, сколько всего нового узнал, и почти все самостоятельно !
Может, и не стоит сразу в форум вопросы кидать ?
 

Гость
#10
Во, сколько всего нового узнал, и почти все самостоятельно !
Может, и не стоит сразу в форум вопросы кидать ?
Да так и получается, бъёшся как об стену, а потом удивляешься как всё просто было )

Вот совета прошу ещё:

Нужно в табличную часть документа, заполненную товаром и количеством, расставить в третью колонку данные из таблицы значений этого же документа с определённым условием.
Извиняюсь если коряво описал.

В каком порядке действовать, какими инструментами?
 

vbs

Well-Known Member
18.02.2007
1 708
3
#11
к табличной части добавляешь колонку типа "текст" и на ее закладке "дополнительно" прописываешь формулу, по которой туда будут выводиться данные
 

Гость
#12
к табличной части добавляешь колонку типа "текст" и на ее закладке "дополнительно" прописываешь формулу, по которой туда будут выводиться данные
Нет, пытаюсь с помощью создания таблиц зн. сопоставить строки и вписывать нужные данные, как получится, выложу, интересно, в чём я был не прав)

Вот примерно так, может кому интересно, но это работает :)
Это процесс при выборе закладок в накладной.

Процедура ПриВыбореЗакладки(Ном, Значен)

Если Значен = "Подробности" Тогда
Форма.ИспользоватьСлой("Подробности, 2");
Форма.ИспользоватьСлой("Основной", 1);

//Заполнение ТЗ
ТабЗнРек.Очистить();
ТабЗнРек.НоваяКолонка("Номер",,,,"№",1);
ТабЗнРек.НоваяКолонка("Товар",,1,0,,4);
ТабЗнРек.НоваяКолонка("Недостача",,1,0,,3);
ТабЗнРек.НоваяКолонка("Излишек",,1,0,,3);
ТабЗнРек.НоваяКолонка("Сортировщик",,1,0,,3);

// Заполнение ТЗ в "Подробностях" содержимым табличной части.
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.ВыбратьСтроки();

Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Стр = 0;
Стр = ТЗ.НомерСтроки;
Тов_=ТЗ.ПолучитьЗначение(Стр,"Товар");
Нед_=ТЗ.ПолучитьЗначение(Стр,"Недостача");
Изл_=ТЗ.ПолучитьЗначение(Стр,"Излишек");
Сорт_=ТЗ.ПолучитьЗначение(Стр,"Сортировщик");

Если Нед_ + Изл_ > 0 Тогда
ТабЗнРек.НоваяСтрока();
СтрТабЗнРек = ТабЗнРек.НомерСтроки;
ТабЗнРек.УстановитьЗначение(СтрТабЗнРек,"Номер",Стр);
ТабЗнРек.УстановитьЗначение(СтрТабЗнРек,"Товар",Тов_);
ТабЗнРек.УстановитьЗначение(СтрТабЗнРек,"Недостача",Нед_);
ТабЗнРек.УстановитьЗначение(СтрТабЗнРек,"Излишек",Изл_);
ТабЗнРек.УстановитьЗначение(СтрТабЗнРек,"Сортировщик",Сорт_);

КонецЕсли;
КонецЦикла;

ИначеЕсли Значен = "Основной" Тогда
Форма.ИспользоватьСлой("Основной", 2);
Форма.ИспользоватьСлой("ТаблицаПоОтгрузке", 1);

// Заполняем колонку "Сортировщик"
ТЗДоп = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗДоп);
ТЗДоп.ВыбратьСтроки();

Пока ТЗДоп.ПолучитьСтроку() = 1 Цикл
Стр = ТЗДоп.НомерСтроки;
Тов_=ТЗДоп.ПолучитьЗначение(Стр,"Товар");

ТЗР = СоздатьОбъект("ТаблицаЗначений");//Смотрим ТЗ "косяки"
ТабЗнРек.ВыбратьСтроки();
Пока ТабЗнРек.ПолучитьСтроку() = 1 Цикл
СтрР = ТабЗнРек.НомерСтроки;
Тов_Р = ТабЗнРек.ПолучитьЗначение(СтрР,"Товар");
Сорт = ТабЗнРек.ПолучитьЗначение(СтрР,"Сортировщик");

Если Тов_Р = Тов_ Тогда
ТЗДоп.УстановитьЗначение(Стр,"Сортировщик",Сорт);
КонецЕсли;
КонецЦикла;

КонецЦикла;
ЗагрузитьТабличнуюЧасть(ТЗДоп);
Иначе
Форма.ИспользоватьСлой("Основной", 2);
Форма.ИспользоватьСлой("ТаблицаПоОтгрузке", 1);
КонецЕсли;

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