Имя: Пароль:
1C
1С v8
Мутабельные значения при проведении.
,
0 dmitry_kzn
 
11.01.16
15:52
Доброго времени суток, господа. Уповаю на ваш опыт и знания, и прошу помощи.

после перевода базы 1С УТ 10.3 в клиент серверный вариант (SQL+сервер 1С на одной машине) при проведении ПКО появляется

"Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода мПроведениеЗачетаПоКассеОбработкаПроведения ()."

Вариант с включением галочки "клиент (обычное приложение)" на Общие модули->мОбработчикиПроведения" вешает сервак, и проведение документов занимает 3-4 минуты.

подскажите, пожалуйста как правильно сделать.
1 ObjectRelation Model
 
11.01.16
15:54
не передавать мутабельные значения
2 dmitry_kzn
 
11.01.16
15:56
Я и не хочу их никуда передавать) в модуле проведения исправляется ведь? в правильном хоть направлении думаю?)
3 Garykom
 
гуру
11.01.16
16:00
(2)
Если КонфаИзмененная = Истина Тогда
ИщитеПрограммиста();
КонецЕсли;
4 dmitry_kzn
 
11.01.16
16:01
Понял, я знал что обязательно найду ответы в сообществе профессионалов)
5 Волшебник
 
модератор
11.01.16
16:02
(4) Пиши ещё.
6 dmitry_kzn
 
11.01.16
16:32
Пацаны помогите уж, чего вам стоит. Бабки кину на телефон если надо, не вопрос. Работа стоит (
7 xxTANATORxx
 
11.01.16
16:42
(6)объект или к.л. другую мутабельную хрень передаешь на сервер
8 xxTANATORxx
 
11.01.16
16:43
(7)+ этого нельзя делать

найти что передается, думать, много думать, исправить
9 hhhh
 
11.01.16
17:04
(6) найди вызов мПроведениеЗачетаПоКассеОбработкаПроведения и посмотри чего туда передаешь.
10 dmitry_kzn
 
11.01.16
17:14
Процедура мПроведениеЗачетаПоКассеОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
    
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер") тогда
                
        Если Источник.БезНал Тогда
            Движения = Источник.Движения.мЗачетБезналичныхОперацийПоКассе;
            Движение = Движения.ДобавитьПриход();
            Движение.Период = Источник.Дата;
            Движение.Организация = Источник.Организация;
            Движение.КассаККМ = Источник.Контрагент;
            Движение.ДатаПлатежа = Источник.Дата;
            Движение.Сумма = Источник.СуммаДокумента;
            Движения.Записать(Истина);
        КонецЕсли;
        
    ИначеЕсли ТипЗнч(Источник) = Тип("ДокументОбъект.ПлатежноеПоручениеВходящее") Тогда
                
        структураПоиска = Справочники.мПлатежныеАппаратыНаТТ.РазложитьСтрокуПлатежногоПоручения(Источник.НазначениеПлатежа);
        
        Если ЗначениеЗаполнено(структураПоиска.Сообщение) тогда
            
            Сообщить(структураПоиска.Сообщение);
            
        Иначе
            
            Движения = Источник.Движения.мЗачетБезналичныхОперацийПоКассе;
            Движение = Движения.ДобавитьРасход();
            Движение.Период = Источник.Дата;
            Движение.Организация = Источник.Организация;
            Движение.КассаККМ = структураПоиска.Касса;
            Движение.ДатаПлатежа = структураПоиска.Дата;
            Движение.Сумма = Источник.СуммаДокумента + структураПоиска.СуммаКом;
            Движения.Записать(Истина);
            
        КонецЕсли;        
    КонецЕсли;
КонецПроцедуры
                                                  
___

Документ объект пытается передать? а должен не объект
11 hhhh
 
11.01.16
17:20
ну это должна быть подписка на событие. А не через прямой вызов этой процедуры
12 dmitry_kzn
 
11.01.16
17:40
Нашел в конфе подписку на событие "мПроведениеЗачетаПоКассе", обработчик "мОбработчикиПроведения.мПроведениеЗачетаПоКассеОбработкаПроведения"

он тут не используется просто что ли?
13 hhhh
 
11.01.16
17:49
(12) в УТ такого нет. Это ваши погроммисты набыдлокодили. Вычисли гадов и набей морду.
14 dmitry_kzn
 
11.01.16
17:56
Это я с удовольствием... ПКО как то по другому тут проводятся что ли? Или ПКО в УТ просто нет?)))
15 dmitry_kzn
 
11.01.16
18:11
Не допру похоже как сделать
16 xxTANATORxx
 
11.01.16
18:13
(15)как быстро исправить: вызови процедуру (10) на клиенте
как правильно сделать: найти кто всё это сделал, и принудить исправить
17 dmitry_kzn
 
11.01.16
19:24
На клиенте нельзя, пробовал уже... вешается весь сервак при проведении...
18 hhhh
 
11.01.16
21:12
(17) ну, выкинь эту процедуру, понятно, что ваши самородки ее сваяли, может по пьяни, в УТ такой процедуры нет.
19 saaken
 
11.01.16
21:18
(17) создай новый клиентский модуль и перенеси процедуру и вывоз процедуры
20 dmitry_kzn
 
11.01.16
21:59
Я вот на стенде вообще просто удалил общий модуль самописный этот и и подписку на собития связаные, вопрос только в том что он делал? по как то по особенному проводил ПКО?
21 dmitry_kzn
 
11.01.16
21:59
Стенд только файловый блин, бессмысленно проверять получается
22 dmitry_kzn
 
11.01.16
22:11
итак, сделал на Скуле, конфу сохранил сначала и постирал все к чертям, ПКО проводятся, но вопрос с функционалом этой дряни только меня беспокоит. Нахрена её вообще писали?
23 Garykom
 
гуру
11.01.16
22:18
(22) тебе это бухи объяснят когда у них отчет по безналу (эквайринговые терминалы) розничному ничего не покажет...
24 dmitry_kzn
 
11.01.16
22:21
Видимо завтра) Как переписать то правильно господа помогите, цену вопроса в студию, пожалуйста, готов материально отблагодарить.
25 Garykom
 
гуру
11.01.16
22:34
(24) сам то сделай

просто из подписки перекинь в модуль проведения документа код с небольшой правкой
26 dmitry_kzn
 
11.01.16
22:47
не, у меня пробел в знаниях не допру)
27 dmitry_kzn
 
11.01.16
22:48
По братски, 1000 на телефон утром закину, пацаны выручайте, пожалуйста)
28 ikea
 
11.01.16
23:53
Создай такую процедуру в мОбработчикиПроведения

Процедура мПроведениеЗачетаПоКассеОбработкаПроведения1(Источник, Отказ, РежимПроведения) Экспорт
    
   мПроведениеЗачетаПоКассеОбработкаПроведения(Источник.Ссылка, Отказ, РежимПроведения);
КонецПроцедуры

И в подписке обработчиком поставь мПроведениеЗачетаПоКассеОбработкаПроведения1
29 RomanYS
 
11.01.16
23:58
(28) Интересно, что произойдет, когда ты обратишься к движениям ссылки?
30 ikea
 
12.01.16
00:02
(29) Точно, а текст процедуры я даже не глянул.
31 RomanYS
 
12.01.16
00:46
(12) нельзя назначить обработчик на подписку из модуля без галочки клиент(необходимо но не достаточно). Поэтому галочку придётся вернуть. А потом разобраться что там у тебя выполняется 3 минуты и возможно тот код перенести на сервер (или на клиент) или тупо переписать. Скорей всего там в цикле передача больших таблиц на сервер по хилой сети.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший