Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 03:35
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Выбор из Справочника  (Прочитано 3687 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dima09

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-01
  • Сайт: 
  • Профессия: Программист 7.7
доброе время суток, такой вопрос: есть справочник, из документа формируется таблица и заполняется информацией из этого справочника, сделал цикл по всем, формирует нормально, а вот с выбором определенной строки проблема, не подскажете в чем дело ?
Процедура Сформировать()
                 ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Наименование");
ТЗ.НоваяКолонка("Должность");
ТЗ.НоваяКолонка("ДатаРождения");
ТЗ.НоваяКолонка("Подразделение");
ТЗ.НоваяКолонка("ВидРаботы");
ТЗ.НоваяКолонка("Наим_Вред"); 
ТЗ.НоваяКолонка("Дата_приема");
СпрС = СоздатьОбъект("Справочник.Сотрудники");
СпрС.ВыбратьЭлементы();
//Если ВыбСотр.Выбран() = 1 тогда // Загвоздка здесь !
//Пока СпрС.ПолучитьЭлемент() > 0 Цикл
Если ВыбСотр.Выбран() = 1 Тогда ///и (ВыбСотр <> СпрС.ТекущийЭлемент()) Тогда   

ТЗ.НоваяСтрока();
ТЗ.Наименование = СпрС.Наименование;
ТЗ.Должность = СпрС.Должность;
ТЗ.ДатаРождения = СпрС.Дата_Рождения;
ТЗ.Подразделение = СпрС.Подразделение;
ТЗ.ВидРаботы = СпрС.Вид_Работы;
ТЗ.Наим_Вред = СпрС.Наименование_Вред;
ТЗ.Дата_Приема = СпрС.Дата_приема;

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




Процедура СформироватьВсех()
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Наименование");
ТЗ.НоваяКолонка("Должность");
ТЗ.НоваяКолонка("ДатаРождения");
ТЗ.НоваяКолонка("Подразделение");
ТЗ.НоваяКолонка("ВидРаботы");
ТЗ.НоваяКолонка("Наим_Вред");
СпрС = СоздатьОбъект("Справочник.Сотрудники");
СпрС.ВыбратьЭлементы();
Пока СпрС.ПолучитьЭлемент() > 0 Цикл

ТЗ.НоваяСтрока();
ТЗ.Наименование = СпрС.Наименование;
ТЗ.Должность = СпрС.Должность;
ТЗ.ДатаРождения = СпрС.Дата_Рождения;
ТЗ.Подразделение = СпрС.Подразделение;
ТЗ.ВидРаботы = СпрС.Вид_Работы;
ТЗ.Наим_Вред = СпрС.Наименование_Вред;
КонецЦикла;
Таб = СоздатьОбъект("Таблица"); 
Таб.Очистить();
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка"); 
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() > 0 Цикл

Наименование = ТЗ.Наименование;
Должность = ТЗ.Должность;
ДатаРождения = ТЗ.ДатаРождения;
Подразделение = ТЗ.Подразделение;
ВидРаботы = ТЗ.ВидРаботы;
Наим_Вред = ТЗ.Наим_Вред;
Таб.ВывестиСекцию("Строка"); 

КонецЦикла;       
Таб.ПараметрыСтраницы(1,,,,,,,,,1);
Таб.ТолькоПросмотр(1);
Таб.Показать("Сведения","");
КонецПроцедуры   



Процедура СформироватьВыборка()
                 ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Наименование");
ТЗ.НоваяКолонка("Должность");
ТЗ.НоваяКолонка("ДатаРождения");
ТЗ.НоваяКолонка("Подразделение");
ТЗ.НоваяКолонка("ВидРаботы");
ТЗ.НоваяКолонка("Наим_Вред");
ТЗ.НоваяКолонка("Переодичность_осмотров");
СпрС = СоздатьОбъект("Справочник.Сотрудники");
СпрС.ВыбратьЭлементы();
ШаблонПол = Выбр.ПолучитьЗначение(Выбр.ТекущаяСтрока());
 Пока СпрС.ПолучитьЭлемент() > 0 Цикл
    Если СпрС.Переодичность_осмотров = ШаблонПол  тогда
ТЗ.НоваяСтрока();
ТЗ.Наименование = СпрС.Наименование;
ТЗ.Должность = СпрС.Должность;
ТЗ.ДатаРождения = СпрС.Дата_Рождения;
ТЗ.Подразделение = СпрС.Подразделение;
ТЗ.ВидРаботы = СпрС.Вид_Работы;
ТЗ.Наим_Вред = СпрС.Наименование_Вред;
ТЗ.Переодичность_осмотров = СпрС.Переодичность_осмотров;
 
    КонецЕсли;
 КонецЦикла;

Таб = СоздатьОбъект("Таблица"); 
Таб.Очистить();
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка"); 
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() > 0 Цикл

Наименование = ТЗ.Наименование;
Должность = ТЗ.Должность;
ДатаРождения = ТЗ.ДатаРождения;
Подразделение = ТЗ.Подразделение;
ВидРаботы = ТЗ.ВидРаботы;
Наим_Вред = ТЗ.Наим_Вред;
Таб.ВывестиСекцию("Строка"); 

КонецЦикла;       
Таб.ПараметрыСтраницы(1,,,,,,,,,1);
Таб.ТолькоПросмотр(1);
Таб.Показать("Сведения","");
КонецПроцедуры           


Процедура ПриОткрытии()

Выбр.ДобавитьЗначение("1 раз в 2 года");
Выбр.ДобавитьЗначение("1 раз в год"); 
КонецПроцедуры       

[img][img]


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Реально много букв. Так попробуй (меньше исправлять)
//СпрС.ВыбратьЭлементы();
//Если ВыбСотр.Выбран() = 1 тогда // Загвоздка здесь !
//Пока СпрС.ПолучитьЭлемент() > 0 Цикл
Если ПустоеЗначение(ВыбСотр) = 0 Тогда ///и (ВыбСотр <> СпрС.ТекущийЭлемент()) Тогда   




Пока ТЗ.ПолучитьСтроку() > 0 Цикл
//Если ТЗ.Наименование = ВыбСотр.ТекущийЭлемент() тогда 



//КонецЕсли;

Кнопочка Спасибо - слева!

Оффлайн Dima09

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-01
  • Сайт: 
  • Профессия: Программист 7.7
так ошибку дает "Пока ТЗ.ПолучитьСтроку()>0 Цикл Операция сравнения на больше меньше допустимы только над значениями совпадающих базовых типов"

Оффлайн Dima09

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-01
  • Сайт: 
  • Профессия: Программист 7.7
Извиняюсь, эт что то я уже пересидел за компом, таблицу выводит только со справочника не заполняет поля остаются пустыми

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
У тебя сотрудник выбран?
Сделай так
Если ПустоеЗначение(ВыбСотр) = 0 Тогда



Иначе
сообщить("Выберите сотрудника");
Возврат;
КонецЕсли;
Кнопочка Спасибо - слева!

Оффлайн Dima09

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-01
  • Сайт: 
  • Профессия: Программист 7.7
сотрудник выбран, код вставил, проходит нормально молчит по поводу выберите сотрудника.

Оффлайн Dima09

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-01
  • Сайт: 
  • Профессия: Программист 7.7
попробовал не выбирать, ругается

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
ТЗ.Наименование = СпрС.Наименование; замени на ТЗ.Наименование = ВыбСотр.Наименование;
и далее еще 6 раз по тексту. Прямо какой-то онлайн отладчик получается. Встроенного отладчика - нет?
Кнопочка Спасибо - слева!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
27 Сообщений
Golickoff Golickoff
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 163
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal