• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

Guest

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

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

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

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

vbs

колонки у тебя без имени
надо так :
ТЗ.НоваяКолонка("Номер",,,,"№",1);
ТЗ.НоваяКолонка("Сотрудник",,,,,4);
да и
ТЗ.НоваяСтрока()
надо бы сделать, прежде, чем заполнять
 
G

Guest

Поправил, но тот же эффект :)

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

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

vbs

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

Guest

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

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

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

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

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

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

vbs

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

Guest

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

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

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

Ась, разобрался :) , параметры подбора не расписал!
 
G

Guest

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

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

vbs

Во, сколько всего нового узнал, и почти все самостоятельно !
Может, и не стоит сразу в форум вопросы кидать ?
 
G

Guest

Во, сколько всего нового узнал, и почти все самостоятельно !
Может, и не стоит сразу в форум вопросы кидать ?

Да так и получается, бъёшся как об стену, а потом удивляешься как всё просто было )

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

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

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

vbs

к табличной части добавляешь колонку типа "текст" и на ее закладке "дополнительно" прописываешь формулу, по которой туда будут выводиться данные
 
G

Guest

к табличной части добавляешь колонку типа "текст" и на ее закладке "дополнительно" прописываешь формулу, по которой туда будут выводиться данные

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецПроцедуры
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!