M_Volkov
Gold Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Документы из КА1.1 перегружаю в КА2.4. С серийным учетом проблема: в КА1.1 серии подчинен номенклатуре, а КА2.4 - виду номенклатуре. Если в документе КА1.1 несколько номенклатур одного вида с одинаковым номером серии, то в КА2.4 передается только одна серия. В результате какого-то сбоя в приходный документ загрузилась одна серия, а в расходный - другая с тем же номером серии. В результате образовались отрицательные остатки: Хотя если перещелкать серии кнопкой "Указать серии" в расходном документе, то все становится нормально. Но каждый раз это делать после обмена КА1.1 - КА2.4 надоело. Решил для начала удалить лишние серии. Но это не так просто, очень много ссылок на РС АналитикаУчетаНоменклатуры и справочник КлючАналитикаУчетаНоменклатуры. Написал свою обработку ИсправитьКлючАналитикиУчетаНоменклатуры, но этого мало, надо одновременно править РС АналитикаУчетаНоменклатуры. И тут начались проблемы (с УФ не работал) Код: &НаСервере Процедура КлючАналитикиУчетаНоменклатурыПриИзмененииНаСервере() Объект.Наименование = Объект.КлючАналитикиУчетаНоменклатуры.Наименование; Объект.Номенклатура = Объект.КлючАналитикиУчетаНоменклатуры.Номенклатура; Объект.Характеристика = Объект.КлючАналитикиУчетаНоменклатуры.Характеристика; Объект.Серия = Объект.КлючАналитикиУчетаНоменклатуры.Серия; Объект.Назначение = Объект.КлючАналитикиУчетаНоменклатуры.Назначение; Объект.СтатьяКалькуляции = Объект.КлючАналитикиУчетаНоменклатуры.СтатьяКалькуляции; Объект.МестоХранения = Объект.КлючАналитикиУчетаНоменклатуры.МестоХранения; Объект.ТипМестаХранения = Объект.КлючАналитикиУчетаНоменклатуры.ТипМестаХранения; Объект.СкладскаяТерритория = Объект.КлючАналитикиУчетаНоменклатуры.СкладскаяТерритория; Объект.Подразделение = Объект.КлючАналитикиУчетаНоменклатуры.Подразделение; Объект.Договор = Объект.КлючАналитикиУчетаНоменклатуры.Договор; Объект.Организация = Объект.КлючАналитикиУчетаНоменклатуры.Организация; Объект.Партнер = Объект.КлючАналитикиУчетаНоменклатуры.Партнер; Объект.Контрагент = Объект.КлючАналитикиУчетаНоменклатуры.Контрагент; КонецПроцедуры &НаКлиенте Процедура КлючАналитикиУчетаНоменклатурыПриИзменении(Элемент) КлючАналитикиУчетаНоменклатурыПриИзмененииНаСервере(); АналитикаУчетаНоменклатуры = ПолучитьАналитикаУчетаНоменклатуры(Объект.КлючАналитикиУчетаНоменклатуры); АртикулНоменклатуры(Объект.Номенклатура); ВидНоменклатуры(Объект.Серия, АналитикаУчетаНоменклатуры); АналитикаУчетаНоменклатуры(АналитикаУчетаНоменклатуры) КонецПроцедуры &НаСервере Процедура ВидНоменклатуры(Серия, АналитикаУчетаНоменклатуры) Если ЗначениеЗаполнено(Серия) Тогда Элементы.ВидНоменклатуры.Заголовок = СокрЛП(?(ПустаяСтрока(Серия.ВидНоменклатуры), НСтр("ru=''"), НСтр("ru='Вид: '") + Серия.ВидНоменклатуры)) + ", GUID: " + Серия.УникальныйИдентификатор() + ?(ЗначениеЗаполнено(АналитикаУчетаНоменклатуры) И ЗначениеЗаполнено(АналитикаУчетаНоменклатуры.Серия) И АналитикаУчетаНоменклатуры.Серия <> Серия, ", серия аналитики: " + СокрЛП(АналитикаУчетаНоменклатуры.Серия) + ", вид: " + СокрЛП(АналитикаУчетаНоменклатуры.Серия.ВидНоменклатуры), ""); Иначе Элементы.ВидНоменклатуры.Заголовок = НСтр("ru=''"); КонецЕсли; КонецПроцедуры &НаСервере Функция ПолучитьАналитикаУчетаНоменклатуры(КлючАналитики) Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | АналитикаУчетаНоменклатуры.КлючАналитики КАК КлючАналитики |ИЗ | РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры |ГДЕ | АналитикаУчетаНоменклатуры.КлючАналитики = &КлючАналитики"; Запрос.УстановитьПараметр("КлючАналитики", КлючАналитики); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Возврат Результат; КонецЕсли; Возврат Неопределено; КонецФункции &НаСервере Процедура АналитикаУчетаНоменклатуры(АналитикаУчетаНоменклатуры) Если ЗначениеЗаполнено(АналитикаУчетаНоменклатуры) Тогда Элементы.АналитикаУчетаНоменклатуры.Заголовок = СокрЛП(АналитикаУчетаНоменклатуры.КлючАналитики); Иначе Элементы.АналитикаУчетаНоменклатуры.Заголовок = НСтр("ru=''"); КонецЕсли; КонецПроцедуры | Ошибку пишет Цитата: {ВнешняяОбработка.ИсправитьКлючАналитикиУчетаНоменклатуры.Форма.Форма.Форма(53)}: Ошибка при вызове метода контекста (ПолучитьАналитикаУчетаНоменклатуры) АналитикаУчетаНоменклатуры = ПолучитьАналитикаУчетаНоменклатуры(Объект.КлючАналитикиУчетаНоменклатуры); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'ret': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}ret по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса' | Как это понимать? |