Голубицкий Сергей | Партнёр | BG Group

«Управление быстрыми изменениями или простые советы руководителям компаний»

1. В качестве пролога, или Определяемся с понятиями - Определяем что изменять; - Характеристики объекта; - Сроки; - Кто Заказчик, а кто Исполнитель; 2. Вы как руководитель должны хотеть - Заинтересованность руководителя компании; - Формальность или желание перемен; 3. Назначить крайнего... или буйного - Назначение РП - Определение полномочий, функций, ответственности. 4. Изложите свой великий замысел на бумаге - Описание Заказчиком с РП хотелок автоматизации; - Ограничение времени и объёмов документа. 5. Лучше меньше, да работающее - Дробите большие задачи; - Каждый блок должен давать работающий результат; - Лучше быть спринтером, чем марафонцем 6. Внедрение. Все довольны? Ничего не работает! - После автоматизации кто-то получает блага, а кому-то - доп.нагрузка; - Мотивация недовольных; 7. Документируем. Или все забудут, как это работает - Не забываем описывать новый функционал; - Ограничиваем время и объёмы; - Для правильных компаний – не забыть про документирование программного кода 8. Выбираем следующую ступеньку - Что автоматизируем дальше? - Принципы те же! 9. Эпилог - Кайдзен - основа постоянных изменений; - Основной посыл: маленькими частями с функционалом, который приносит пользу.

Мутабельное значение

1. Taisa07 26.12.16 11:17 Сейчас в теме
Добрый день!
В новой конфигурации 1С на 2017 год не получается с помощью внешней обработки сформировать сводные ведомости. В базе 2016 года после перехода на клиент-серверный вариант обработка работала, устанавливала только флажок "Клиент обычное приложение". Сейчас эта галочка стоит в общем модуле РасчетныеВедомости, но при запуске обработки выходит сообщение:
{Форма.Форма.Форма(548)}: Ошибка при вызове метода контекста (Записать)
НовДок.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.РасчетныеВедомости.Модуль(1752)}: Ошибка при вызове метода контекста (УпорядочитьСодержание)
НовДок.Записать();
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода УпорядочитьСодержание ().
{ОбщийМодуль.РасчетныеВедомости.Модуль(1752)}: Ошибка при вызове метода контекста (УпорядочитьСодержание)
ДляРасчетныхВедомостейСервер.УпорядочитьСодержание(Объект);


В обработке создается документ, заполняется и записывается:
НовДок = Документы.ВедомостьНачислений.СоздатьДокумент();
***
НовДок.Дата=НачПериода;
НовДок.Записать();


При записи документа происходит обращение к общему модулю:
Процедура ПередЗаписью(Объект, Отказ, РежимЗаписи, РежимПроведения) Экспорт

***
ЭтоЗагрузка = ложь;
Если Объект.ДополнительныеСвойства.Свойство("ЭтоЗагрузка") Тогда
Если Объект.ДополнительныеСвойства.ЭтоЗагрузка Тогда
ЭтоЗагрузка = истина;
КонецЕсли;
КонецЕсли;

МДСодержание = Объект.Ссылка.Метаданные().ТабличныеЧасти.Найти("Содержание");

Если не ЭтоЗагрузка и не Объект.Проведен Тогда
Если МДСодержание <> неопределено Тогда
Если МДСодержание.Реквизиты.Найти("ВидВыплат") <> неопределено Тогда
ДляРасчетныхВедомостейСервер.УпорядочитьСодержание(Объект);
КонецЕсли;
КонецЕсли;
КонецЕсли;

***
КонецПроцедуры
Показать


Что можно сделать?
Найденные решения
10. alexei366 26.12.16 14:54 Сейчас в теме
(8) А можно "ОбщийМодуль.РасчетныеВедомости.Модуль(1752)" строку показать, чего-то мы явно еще не знаем
Остальные ответы
Сортировка: Древо
2. starjevschik 26.12.16 11:22 Сейчас в теме
(1) очевидно, не надо объект передавать. Передать какую-нибудь выгрузку их табличной части, например.
Или перенести из общего модуля сюда обработку, судя по общей стилистике кода, сильно хуже не будет.
4. Taisa07 26.12.16 11:58 Сейчас в теме
(2) К сожалению, я скорее админ, чем программист. В идеале бы вообще конфигурацию не менять. Как в этом случае лучше поступить?
Процедуру ПередЗаписью() вставляем во внешнюю обработку?
5. alexei366 26.12.16 12:34 Сейчас в теме
(4) На поддержке конфа? в теории можно поставить у модуля в свойствах галку "толстый клиент" и должно взлететь (по крайнемере данный модуль).
6. Taisa07 26.12.16 12:47 Сейчас в теме
(5) нет такой галки или не там смотрю.
Вообще конфигурация на поддержке, но обычно все-равно открывали для изменений. Сейчас работаем в базе, восстановленной из *.dt от разработчиков, с поддержки снять не могу, изменить тоже.
Прикрепленные файлы:
7. starjevschik 26.12.16 13:20 Сейчас в теме
(4) да, в обработку все переносите, это самый простой способ.
3. japopov 46 26.12.16 11:55 Сейчас в теме
Анализировать обработку. Переносить код в процедуры, корректно помеченные &НаСервере и &НаКлиенте. При этом помнить, что между сервером и клиентом не передаются объекты и таблицы.
Вместо объектов передавать либо ссылки (а уже на сервере по ссылке получать объект), либо структуру с данными объекта (на сервере создавать объект и заполнять его полученными данными).
Вместо таблиц лучше бы не передавать ничего (прикиньте объём данных!), но если уж надо - выручит, например, массив структур с ключевыми полями. Опять же, на сервере запихивать этот массив в табличную часть...

В общем, дерзайте сами или кладите сюда обработку, вместе поковыряем...
8. Taisa07 26.12.16 13:45 Сейчас в теме
Конфигурацию для изменений открыла.
Во внешнюю обработку перенесла процедуру ПередЗаписью из общего модуля РасчетныеВедомости.
Ошибка та же:
{Форма.Форма.Форма(638)}: Ошибка при вызове метода контекста (Записать)
НовДок.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.РасчетныеВедомости.Модуль(1752)}: Ошибка при вызове метода контекста (УпорядочитьСодержание)
НовДок.Записать();
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода УпорядочитьСодержание ().
{ОбщийМодуль.РасчетныеВедомости.Модуль(1752)}: Ошибка при вызове метода контекста (УпорядочитьСодержание)
ДляРасчетныхВедомостейСервер.УпорядочитьСодержание(Объект);
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода УпорядочитьСодержание ().
Показать
10. alexei366 26.12.16 14:54 Сейчас в теме
(8) А можно "ОбщийМодуль.РасчетныеВедомости.Модуль(1752)" строку показать, чего-то мы явно еще не знаем
11. Taisa07 26.12.16 15:08 Сейчас в теме
(10) 1752 строка выделена на рисунке
Прикрепленные файлы:
13. alexei366 26.12.16 15:19 Сейчас в теме
(11) ДляРасчетныхВедомостейСервер (проблема в этом модуле, в предыдущий раз я писал не о том модуле, был невнимателен) видать не имеет галки "Клиент (обычное приложение)". Тут или ставить эту галку, или менять входные/выходные параметры, или может на время даже скопировать полностью этот общий модуль, окончание какоенибудь ему влепить и снова нашу галку. А потом уже дожидаться программиста, ведь не просто так контекст начал путаться
12. starjevschik 26.12.16 15:14 Сейчас в теме
(8) теперь надо взять эту процедуру.упорядочитьСодержание() и сделать одно из:
1) перенести ее содержимое на клиент туда, откуда она вызывается. Если это возможно, это самое простое.
2) переделать и саму процедуру и ее вызов так, чтобы передавать ей не объект, а что-то, что можно передать с клиента на сервер.
Что за процедура-то, что она делает, зачем ей целый объект?
9. Taisa07 26.12.16 13:46 Сейчас в теме
Строка НовДок.Записать() из внешней обработки.
14. Taisa07 26.12.16 15:30 Сейчас в теме
Закомментировала эту строку, заработало! Экономисты проверили, вроде все корректно.
АААА!!! Спасибо огромное!!!!!
15. alexei366 26.12.16 15:32 Сейчас в теме
(14) Прикольное решение проблемы)))) Смотри чтоб потом проблем не было, так как содержание будет неупорядоченным отныне (судя по наименованию процедуры)
16. Taisa07 26.12.16 15:45 Сейчас в теме
В нашем случае это нет так важно. Программа используется исключительно для загрузки документов, формирования по ним сводных ведомостей и выгрузки в другую программу.
Еще раз всем спасибо!!!
Оставьте свое сообщение

Вакансии

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Руководитель проектов по внедрению 1С документооборота
Санкт-Петербург
зарплата от 100 000 руб. до 130 000 руб.
Полный день

Руководитель по сопровождению и внедрению 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Ведущий специалист 1С
Москва
Полный день