Имя: Пароль:
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) Документ самописный? Не делай тогда никаких подписок, а пиши явно в модуле