Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при проведении программно созданного документа.

Ошибка при проведении программно созданного документа.
Я
   JuixyJes
 
14.08.19 - 14:30
Добрый день! Занимаюсь доработкой УТ11 Проф, в самописном документе в определенный момент создаю документ ПКО(Приходный кассовый ордер), заполняя нужные мне реквизиты, где то предопределенными значениями, где-то нет. При создании нового документа в режиме предприятия - все ок, но вот когда из моего документа создается ПКО при попытке проведения выдает следующую ошибку : http://priscree.ru/img/54895e46618fee.jpg
 
 
   GROOVY
 
1 - 14.08.19 - 14:31
Мне кажется что поле Организация нужно заполнить, вангую что оно пустое в регистре.
   JuixyJes
 
2 - 14.08.19 - 14:32
(1) Просто понимаете, выбирая то же самое значение, но создавая документ ПКО ручками, при проведении не ругается и документ проводится.
   piter3
 
3 - 14.08.19 - 14:33
А одна роганизация в базе?
   JuixyJes
 
4 - 14.08.19 - 14:34
(1) http://priscree.ru/img/bdc94323a1ae5a.jpg вот скрин того контрагента, который выбран
   piter3
 
5 - 14.08.19 - 14:34
В договоре может быть организация,пальцем в небо
   JuixyJes
 
6 - 14.08.19 - 14:36
(5) нет там организации.
   DiFas
 
7 - 14.08.19 - 14:39
Если заполняешь на основании самописного документа, то попробуй метод "ЗаполнитьЗначениямиСвойств()"
   JuixyJes
 
8 - 14.08.19 - 14:45
Функция создатьдокПКО(ФЛ,ДокН,Сумма)
    Док =Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
    Док.СуммаДокумента = Сумма;
    Док.ДокументОснование=  ДокН.Ссылка;
    Док.Дата = ТекущаяДата();
    Док.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента");
    Док.Контрагент = ПредопределенноеЗначение("Справочник.Контрагенты.РозничныйПокупатель");
    Стр = Док.РасшифровкаПлатежа.Добавить();
    СТР.ОснованиеПлатежа = ДокН.Ссылка;
    Стр.СтатьяДвиженияДенежныхСредств  = ПредопределенноеЗначение("Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента");
    Док.СтатьяДвиженияДенежныхСредств = ПредопределенноеЗначение("Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента");
    Стр.Сумма = Сумма;
    Док.Основание =  ДокН.Ссылка;
    Док.ПринятоОт = ФЛ;
    Док.Записать();    
    Возврат Док.Ссылка
КонецФункции
   JuixyJes
 
9 - 14.08.19 - 14:45
Вот создаю
   piter3
 
10 - 14.08.19 - 14:46
орг-ю заполни
   JuixyJes
 
11 - 14.08.19 - 14:47
(10) где мне организацию заполнить? у предопределенного элемента? или в ПКО в самом где то есть организация?
   piter3
 
12 - 14.08.19 - 14:48
(11)В коде добавить заполнение,открой кофнигуратор и посмотри,мне отсюда не видно
   DiFas
 
13 - 14.08.19 - 14:51
Док.Организация = ВашаОрганизация
   JuixyJes
 
14 - 14.08.19 - 14:53
(13) ой, спасибочки, не подумала
   piter3
 
15 - 14.08.19 - 14:59
Лучше "заполнитьшапку" может использовать
   unbred
 
16 - 14.08.19 - 15:03
(14) тоесть ответ в (1) тебя не заставил подумать...грустно.
   JuixyJes
 
17 - 14.08.19 - 15:03
(13) А, еще такой вопрос, допустим у меня будет несколько организаций, тогда как быть? К примеру у пользователя как то ее обозначить?
   JuixyJes
 
18 - 14.08.19 - 15:04
(16) я не видела поля организация, потому и не доперло сразу
   DiFas
 
19 - 14.08.19 - 15:05
(17) если несколько организаций, то, наверное, брать из документа, на основании которого ты создаешь ПКО
   DiFas
 
20 - 14.08.19 - 15:08
(18) ты новичок) так что это нормально))
   JuixyJes
 
21 - 14.08.19 - 15:08
(19) Так. Ни в одном документе организация не указана, я думала как то в пользвателя эту информацию добавить
   JuixyJes
 
22 - 14.08.19 - 15:08
(20) Спасибо за понимание)
   JuixyJes
 
23 - 14.08.19 - 15:10
Через добавление доп реквизита пользователю можно же?
   unbred
 
24 - 14.08.19 - 15:13
(23) документ самописный. зачем допреквизит? сделай просто реквизит.
   DiFas
 
25 - 14.08.19 - 15:18
(24) (23) если нет реквизита "Организация", то создавай его. Если уже создала, то заполняй из документа-основания. Так будет правильней
   JuixyJes
 
26 - 14.08.19 - 15:48
(25) Все, всем спасибо большое, надеюсь однажды и я вам подскажу!
   DiFas
 
27 - 14.08.19 - 15:55
(26) хорошо)
   JuixyJes
 
28 - 14.08.19 - 15:57
(27) Можно вопрос не по теме? Чтоб не создавать еще одну? Как мне подписку на событие сделать обработки проведения документа, чтобы тот делал движения по нетиповому регистру накопления?
   JuixyJes
 
29 - 14.08.19 - 16:00
Процедура ПроведениеПриходникаПоЗаселениюОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
    Номер = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "НомерПроживания_da66e8cc6e554b92b848666e9a34c175")); 
    Комната = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "НомерПроживания_da66e8cc6e554b92b848666e9a34c175")); 
    Койка = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "НомерПроживания_da66e8cc6e554b92b848666e9a34c175")); 
    
    Регистр = Источник.Движения.Начисления;
    Движения.Регистр.Записывать = Истина;    
    Движение = Движения.Начисления.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Источник.Дата;
    Движение.ФизЛицо = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ФизЛицо_919782560b00409a92c4ae7bcbdd4dee"));
    Движение.Сумма = Источник.СуммаДокумента;
    Движение.ДатаЗаселения = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ДатаНачала_bcc55c850cc348d8827fd81e4ecf7470"));
    Движение.ДатаВыезда = ПолучитьЗначениеДопРеквизита(Источник,ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ДатаОкончания_3ef54688c33f4ea59819c211a05a7809"));
    
    Выб = Справочники.Номера.Выбрать();
    Пока Выб.Следующий() Цикл
        Если Выб.Наименование = Номер Тогда
            Движение.НомерПроживания = Выб.Ссылка;
        КонецЕсли;
    КонецЦикла;
    
    Выб = Справочники.Комнаты.Выбрать();
    Пока Выб.Следующий() Цикл
        Если Выб.Наименование = Комната Тогда
            Движение.КомнатаПроживания = Выб.Ссылка;
        КонецЕсли;
    КонецЦикла;
    
    Выб = Справочники.Койки.Выбрать();
    Пока Выб.Следующий() Цикл
        Если Выб.Наименование = Койка Тогда
            Движение.КойкаПроживания = Выб.Ссылка;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
   JuixyJes
 
30 - 14.08.19 - 16:01
Вот процедура в самописном модуле, но не получается с ней чтото
 
 Рекламное место пустует
   DiFas
 
31 - 14.08.19 - 16:04
(30) а что не получается?
   JuixyJes
 
32 - 14.08.19 - 16:07
(31) при попытке обновить конфигурацию следующая ошибка

{ОбщийМодуль.Начисления.Модуль(47,2)}: Переменная не определена (Движения)
    <<?>>Движения.Регистр.Записывать = Истина;     (Проверка: Сервер)
{ОбщийМодуль.Начисления.Модуль(48,13)}: Переменная не определена (Движения)
    Движение = <<?>>Движения.Начисления.Добавить(); (Проверка: Сервер)
   hhhh
 
33 - 14.08.19 - 16:08
(32) Источник.Движения
   DiFas
 
34 - 14.08.19 - 16:09
(32) ставь точку остановы в этом общем модуле и отлаживай ошибку почему он не знает "Движения"
   JuixyJes
 
35 - 14.08.19 - 16:10
(34) я даже запустить не могу.
   JuixyJes
 
36 - 14.08.19 - 16:11
(33) не поняла немного, что значит Источник.Движения?
Я же уже присвоила значение переменной Регистр = Источник.Движения.Начисления;
   hhhh
 
37 - 14.08.19 - 16:16
(36) ну вот этот бред объясните
   Регистр = Источник.Движения.Начисления;
    Движения.Регистр.Записывать = Истина; 


вы присвоили Регистр, а дальше вы к этому Регистр вообще нигде не обращаетесь ниже по тексту. Зачем вы тогда присваивали?
   3achem
 
38 - 14.08.19 - 17:11
(28) Документ самописный? Не делай тогда никаких подписок, а пиши явно в модуле


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.