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

Автор Тема: Получить данные со ставного типа данных!  (Прочитано 2819 раз)

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

Оффлайн Шурик_1985

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 5
  • КПД: 11%
  • )
  • Регистрация: 2011-05-14
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте!
Ребят помогите решить задачку!!
Имеется реквизит табличной части документа составного типа (два разных справочника 1.СправочникСотрудник и 2 СправочникКонтрагенты).
 Задача: если пользователь выбрал один тип справочника т.е СправочникСотрудники, то нужно открыть форму выбора и передав  параметры в глобальный модуль,
 а если другой - ничего не делать, вот что я пробовал написать:
&НаКлиенте
Процедура ТабДокКлиентыПриИзменении(Элемент)
 ТЗ = ЭтаФорма.Элементы.Долги.ТекущиеДанные;
 Если ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда
  ДанныеСотрудника = "";
  ГМВариантыОтчетов.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника);
  ТЗ.Организация   = ДанныеСотрудника.Организация;
  ТЗ.Подразделение = ДанныеСотрудника.Подразделение;
  ИначеЕсли
  ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда
  КонецЕсли;
КонецПроцедуры

Функция ПолучитьДанныеСотрудника (ДанныеСотрудника,Сотрудник) Экспорт

Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
| СотрудникиСрезПоследних.Сотрудник,
| СотрудникиСрезПоследних.Организация,
| СотрудникиСрезПоследних.СтруктурнаяЕдиница Как Подразделение,
| СотрудникиСрезПоследних.Должность
|ИЗ
| РегистрСведений.Сотрудники.СрезПоследних КАК СотрудникиСрезПоследних
|ГДЕ
| СотрудникиСрезПоследних.Сотрудник = &Сотрудник";
Запрос.УстановитьПараметр("Сотрудник",Сотрудник);

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий()  Тогда
ДанныеСотрудника  = Новый Структура;
ДанныеСотрудника.Вставить("Организация",Выборка.Организация);
ДанныеСотрудника.Вставить("СтруктурнаяЕдиница",Выборка.Подразделение);
Возврат ДанныеСотрудника;
КонецЕсли;
КонецФункции

[code\]
Спасибо за внимание!
Усё чотко!


Оффлайн Шурик_1985

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 5
  • КПД: 11%
  • )
  • Регистрация: 2011-05-14
  • Сайт: 
  • Профессия: Ученик 1С
И в Результате:Ошибка {Документ.АвансовыйОтчет.Форма.ФормаДокумента(2307)}: Значение не является значением объектного типа (Организация)

я понимаю что передаю пустую строку, вопрос как теперь мне обойти или остановит первый параметр
Усё чотко!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
1. В функции ПолучитьДанныеСотрудника(...) параметры перепутаны.
В описании сперва ДанныеСотрудника, а потом Сотрудник,
а при вызове - наоборот...

2. Да и в качестве параметра ДанныеСотрудника вам не нужны - вы ее (структуру данных о сотруднике) как результат функции возвращаете.

3. В начале текста функции присвойте ДанныеСотрудника = Неопределено.
Тогда после вызова функции сможете проверить
Если ПолученныеДанные <> Неопределено Тогда
...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Шурик_1985

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 5
  • КПД: 11%
  • )
  • Регистрация: 2011-05-14
  • Сайт: 
  • Профессия: Ученик 1С
Все равно результат не та,  при изменении ТЗ.клиента я передаю родителя СправочникаСотрудник в глобальный модуль и уменя результат естественно получаеться пустая строка.
может это следует написать в НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
типа СтандартнаяОбработка = Ложь;
и дальше ? ?
если я реально туплю прошу не судите строго, начинающий:((
Усё чотко!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Ничего не понятно (
1. Какого "родителя" вы передаете в функцию из общего модуля?
2. И почему это "естественно" получается пустая строка?

P.S. функцию вызывайте следующим образом:
ДанныеСотрудника = ГМВариантыОтчетов.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника);

т.е. можно не присваивать изначальную пустую строку - функция и так что нибудь вернет: или Неопределено или Структуру... Ну а дальше Если ДанныеСтроки <> Неопределено Тогда и т.д....
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Шурик_1985

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 5
  • КПД: 11%
  • )
  • Регистрация: 2011-05-14
  • Сайт: 
  • Профессия: Ученик 1С
cska-fanat-kz
Спасибо Вам, получилось, а самое главное я понял как все работает!

&НаКлиенте
Процедура ДолгиКлиентыПриИзменении(Элемент)
  ТЗ = ЭтаФорма.Элементы.Долги.ТекущиеДанные;      
  Если ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда
     ДанныеСотрудника = УправлениеНебольшойФирмойСервер.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника);
     Если ДанныеСотрудника<> Неопределено Тогда
         ТЗ.Организация   = ДанныеСотрудника.Организация;
          ТЗ.Подразделение = ДанныеСотрудника.СтруктурнаяЕдиница;   
 ИначеЕсли
    ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Контрагенты") Тогда
 КонецЕсли;
КонецЕсли;
КонецПроцедуры


Функция ПолучитьДанныеСотрудника (Сотрудник,ДанныеСотрудника) Экспорт
      Запрос = Новый Запрос;
      Запрос.Текст = " ВЫБРАТЬ
               |   СотрудникиСрезПоследних.Сотрудник,
               |   СотрудникиСрезПоследних.Организация,
               |   СотрудникиСрезПоследних.СтруктурнаяЕдиница Как Подразделение,
               |   СотрудникиСрезПоследних.Должность
               |ИЗ
               |   РегистрСведений.Сотрудники.СрезПоследних КАК СотрудникиСрезПоследних
               |ГДЕ
               |   СотрудникиСрезПоследних.Сотрудник = &Сотрудник";
      Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
      
      Выборка = Запрос.Выполнить().Выбрать();
      
      Если Выборка.Следующий() Тогда
          ДанныеСотрудника  = Новый Структура;
          ДанныеСотрудника.Вставить("Организация",Выборка.Организация);
          ДанныеСотрудника.Вставить("СтруктурнаяЕдиница",Выборка.Подразделение);
          Возврат ДанныеСотрудника;
       КонецЕсли;
КонецФункции

Усё чотко!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
А теперь если начать придираться ;)

1. Второй параметр у функции - НЕ НУЖЕН.
2. Зачем вам в запросе поля "Должность" и "Сотрудник"?
3. Условие на сотрудника накладывайте в виртуальных параметрах таблицы СрезПоследних - так быстрее работает.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Шурик_1985

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 5
  • КПД: 11%
  • )
  • Регистрация: 2011-05-14
  • Сайт: 
  • Профессия: Ученик 1С
а если так:
ВЫБРАТЬ
            |   СотрудникиСрезПоследних.Организация,
            |   СотрудникиСрезПоследних.СтруктурнаяЕдиница КАК Подразделение
            |ИЗ
            |   РегистрСведений.Сотрудники.СрезПоследних(, Сотрудник = &Сотрудник) КАК СотрудникиСрезПоследних";
что теперь скажите? :))
Усё чотко!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7425
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3879
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2109
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7318
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Как перенести конфу базы данных на новую конфу?

Автор dim3740Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 11243
Последний ответ 23 Авг 2010, 15:41
от mohock

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 329
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal