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

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

   Регистр = Источник.Движения.Начисления;
    Движения.Регистр.Записывать = Истина;


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