Имя: Пароль:
1C
1С v8
Ввод на основании справочника 8.2
,
0 Мурочка
 
07.10.11
18:11
Добрый вечер...
К концу дня совсем не соображаю. Подскажите.
В 8.2 (бухгалтерия 2.0) есть справочник сотрудники. Сотрудника можно создать с помощью "Ввода на основании" Физического лица. Отвечает за это обработка в модуле справочника "СотрудникиОрганизации" -

Процедура - обработчик события "Заполнение" объекта
Процедура ОбработкаЗаполнения(Основание)

   ТипОснования = ТипЗнч(Основание);
   
   Если ТипОснования = Тип("СправочникСсылка.ФизическиеЛица")
       И НЕ Основание.ЭтоГруппа Тогда
       Физлицо = Основание;
   КонецЕсли;
   

Почему тогда не работает:

Пока ФизЛицо.Следующий() Цикл
      Физ = ФизЛицо.Ссылка;
      НовыйСотр = Сотрудник.СоздатьЭлемент();

      НовыйСотр.Заполнить(Физ);
      Попытка
       НовыйСотр.Записать();
          Исключение
           //исключительные ситуации
      КонецПопытки;
   КонецЦикла;

Или ввод на основании как-то по-другому происходит? просто в 7.7 было все куда понятней)
1 Конфигуратор1с
 
07.10.11
18:14
ФизЛицо Сотрудник - что это ? и почему не работает?
2 DrHiHi
 
07.10.11
18:14
раз-два-три-четыре-пять начинаем телепать
3 DrHiHi
 
07.10.11
18:15
какую ошибку выдает??
4 НЕА123
 
07.10.11
18:15
(0)
>не работает
подробнее (ошибка или что).
5 Мурочка
 
07.10.11
18:16
никакой ошибки просто не создает мне сотрудника на основании физ лица
6 Мурочка
 
07.10.11
18:17
я пытаюсь на основании УЖЕ введенных пользователями физ.лиц. создать сотрудников
7 Мурочка
 
07.10.11
18:18
два отдельныхх справочникав 1с: ФизическиеЛица и СотрудникиОрганизации. Ну так вот пытаюсь программно ввести сотрудника на основании физ лица
8 НЕА123
 
07.10.11
18:18
(6)
Заполнить() как работает знаешь?
9 Конфигуратор1с
 
07.10.11
18:19
Всю процедуру покажите пожалуйста, что такое сотрудник, что такое физлицо
10 Мурочка
 
07.10.11
18:19
ФизЛицо - Это СправочникСсылка.ФизическиеЛица
Сотрудник - Это СправочникОбъект.СотрудникиОрганизации
11 DrHiHi
 
07.10.11
18:19
в исключении напиши типа сообщить(описаниеошибки())
12 Мурочка
 
07.10.11
18:20
ничего не пишет - пробовала... он не заходит в исключение вообще
13 Мурочка
 
07.10.11
18:21
т.е. он на НовыйСотр.Записать();
вообще не ругается... в отладчике смотрела - он просто проходит стандартный ритуал записи
14 Конфигуратор1с
 
07.10.11
18:21
может процедуру покажете?
15 DrHiHi
 
07.10.11
18:21
я надеюсь написано типа так
ФизЛицо = справочник.физическиелица.выбрать()
16 НЕА123
 
07.10.11
18:22
(14)+ да и личико тоже бы хотелось увидеть.
17 Мурочка
 
07.10.11
18:22
Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
   Сотрудник = Справочники.СотрудникиОрганизаций;
   ФизЛицо = Справочники.ФизическиеЛица.Выбрать();
   Пока ФизЛицо.Следующий() Цикл
       Физ = ФизЛицо.Ссылка;
      НовыйСотр = Сотрудник.СоздатьЭлемент();
      НовыйСотр.Заполнить(Физ);
      Попытка
      НовыйСотр.Записать();
  Исключение
      КонецПопытки;
   КонецЦикла;
   
КонецПроцедуры
18 DrHiHi
 
07.10.11
18:22
показывай модуль, а то телепать надоело
19 Мурочка
 
07.10.11
18:23
какой модуль?
20 Мурочка
 
07.10.11
18:23
я пытаюсь использоваь в обработке функцию Объект.Заполнить(ОбъектОснование);
21 DrHiHi
 
07.10.11
18:23
(19)поздно написал %))
22 Мурочка
 
07.10.11
18:23
ок)
23 Конфигуратор1с
 
07.10.11
18:25
(22) во первых - проверку на группу и помеченных на удаление поставьте
24 Конфигуратор1с
 
07.10.11
18:25
Во вторых физлица запросом выбирайте, а то 8шники забросают какашками
25 DrHiHi
 
07.10.11
18:25
так я не пойму он ничего не создает или создает, только пустое
26 Конфигуратор1с
 
07.10.11
18:27
В третьих покажите процедуру заполнения из модуля справочника сотрудники
27 Конфигуратор1с
 
07.10.11
18:28
в четвертых - выложите фотку
28 Мурочка
 
07.10.11
18:28
Дык про запрос-то понятно.... я тут просто проверяла работает ли в принципе эта фигня... она нифига не делает
29 sanja26
 
07.10.11
18:28
Физлицо = Основание;
Где создание?
30 Конфигуратор1с
 
07.10.11
18:28
процедуру и фото
31 Мурочка
 
07.10.11
18:30
короче... смотрела в отладчике, на строчке
НовыйСотр.Заполнить(Физ);
он переходит в модуль справочника СотрудникиОрганизации
вот сюда
Процедура ОбработкаЗаполнения(Основание)

   ТипОснования = ТипЗнч(Основание);
   
   Если ТипОснования = Тип("СправочникСсылка.ФизическиеЛица")
       И НЕ Основание.ЭтоГруппа Тогда
       Физлицо = Основание;
   КонецЕсли;
Передается Основание нормально - там ссылка на физ лицо... но дальше нифига не идет
32 Конфигуратор1с
 
07.10.11
18:31
что не дает?
33 Конфигуратор1с
 
07.10.11
18:31
он не записывает новые элементы?
34 Мурочка
 
07.10.11
18:32
нет
35 Мурочка
 
07.10.11
18:32
а фотку я не загружу... мне лень ее сжимать до 200 кб
36 Мурочка
 
07.10.11
18:33
времени сейчас нет
37 Мурочка
 
07.10.11
18:33
скоро домой))
38 Конфигуратор1с
 
07.10.11
18:33
(35) Посмотрел я в обработчик
39 DrHiHi
 
07.10.11
18:34
(35)(36)(37) знакомые слова)))))) уже была тая отмазка, второй раз не канает
40 DrHiHi
 
07.10.11
18:36
так он создает что-то или нет??
если создает пустой элемент справочника, то тогда ройся в обработке заполнения
если вообще ничего не создает, тогда ройся в обработке перед/при записи
41 Мурочка
 
07.10.11
18:38
вообще ничего не создает!
ладно буду лучше в понедельник разбираться...
42 Mickeleangelo
 
07.10.11
18:41
Если ЭтоВесьКод(17) Тогда
   СотрудникиСоздаются = Истина;
   ПричинаПоКоторойИхНеВидно = ?(НетФотки, "Не скажем", "…");
КонецЕсли;
43 Мурочка
 
07.10.11
18:41
))
44 DrHiHi
 
07.10.11
18:42
(41) поставь точку останова в модуле справочника сотрудника
процедура переззапись / призаписи
45 Конфигуратор1с
 
07.10.11
18:58
В общем так. ленивая мурочка. Дело в том, что в обработчике обрбаотка заполнения не заполняется данными физлица сотрудник. Заполняется он при открытии формы. По - этому у тебя куча пустых элементов должно быть
46 Мурочка
 
07.10.11
18:58
и, кстати, ни у кого из вас тоже нет фото!!! ВОТ выкладывайте свои фото - а потом и я вставлю))
47 Конфигуратор1с
 
07.10.11
18:58
как вариант - открывать форму программно  и закрывать
48 Мурочка
 
07.10.11
18:59
ок, попробую в понедельник)
49 Мурочка
 
10.10.11
15:24
Короче, так и не заработало... может ввод на основании как-то по-другому делается программно?
50 GoldenCalf
 
10.10.11
15:39
Судя по всему без фото не взлетит
51 22 см
 
10.10.11
15:40
(31) Потому что у тебя не записывется справочник Сотрудники.
В (47) реально подсказали
(49) Пы.сы. Фотку выложить? Или и так поверишь?
52 Мурочка
 
10.10.11
15:41
Еще раз повторю: ни у кого из вас нет фото!!! Почему должно быть у меня? Выкладывайте - выложу и я!
53 Мурочка
 
10.10.11
15:42
Ну раз других вариантов нет - буду мучать дальше, что есть)
54 zladenuw
 
10.10.11
15:57
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Справочник1") Тогда
       // Заполнение шапки
       Код = ДанныеЗаполнения.Код;
       Наименование = ДанныеЗаполнения.Наименование;
   КонецЕсли;
   //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
И все прекрасно работает.
З.Ы. есть конструктор