Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 3, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )

> Вопрос по регистрации наработок оборудования в ERP , Проблема при проведении документа          
kipkoalex Подменю пользователя
сообщение 10.11.16, 13:13
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!
Не нашел на форуме тему про ERP, поэтому пишу сюда, так как по моему мнению УПП чем то схожа с ERP.
Пытаюсь разобраться с работой в этой конфигурации, и возникает очень неприятная ошибка. В системе есть возможность регистрировать наработки узлов объектов эксплуатации "От источника" - т.е., к примеру, есть прокатный стан (объект эксплуатации) и есть клети прокатного стана (узлы объекта эксплуатации). Параметр наработки для них один - время работы в часах. И вот для того, чтобы не регистрировать наработки отдельно для прокатного и стана и для каждой клети, есть возможность привязать время работы клетей к времени работы стана. Но при попытке проведения документа регистрации наработок возникает ошибка. Привожу текст:
Запись с такими ключевыми полями уже существует! : ПериодыАктуальностиОбъектовЭксплуатации: (ТУТ ИДЕТ ДАТА ТЕКУЩЕГО ДОКУМЕНТА РЕГИСТРАЦИИ НАРАБОТОК), Регистрация наработок (НОМЕР ДОКУМЕНТА) от (ДАТА И ВРЕМЯ), Прокатный стан номер 1 (Регистры сведений: Периоды актуальности объектов эксплуатации; Номер строки: 2)
Понимаю, что это не совсем верно, но я попробовал отключить движение этого документа по регистру Периоды актуальности объектов эксплуатации. В таком случае документ проводится без проблем, наработки регистрируются, но пропадает возможность автоматически подбирать ремонтные работы по узлам, в зависимости от количества наработки.
Так же менял периодичность регистра на "в пределах секунды" - не помогло.
Если же не включать регистрацию наработок узла от источника, по которому потом оформляется наработка, то документы проводятся без проблем.
Прошу помочь решить эту проблему.
Заранее спасибо!

1С:Предприятие 8.3 (8.3.8.2197)
1С:ERP Управление предприятием 2 (2.2.1.115)

Vofka Подменю пользователя
сообщение 10.11.16, 13:20
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 12063
Из: Киев
Спасибо сказали: 3516 раз
Рейтинг: 2659.7

Создан раздел по ERP, тему перенес


Signature
Услуги 1С программиста

Егор Динин Подменю пользователя
сообщение 10.11.16, 13:21
Сообщение #3

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1280
Из: Киев
Спасибо сказали: 470 раз
Рейтинг: 321.1

Вряд ли вам кто ответит. Опыт внедрения в Украине - у единиц.

Acid Подменю пользователя
сообщение 10.11.16, 13:57
Сообщение #4

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 1899
Из: Занзибар
Спасибо сказали: 300 раз
Рейтинг: 185.7

Цитата(kipkoalex @ 10.11.16, 14:13) *
УПП чем то схожа с ERP

Это его реинкарнация на управляемых формах.

Цитата(kipkoalex @ 10.11.16, 14:13) *
ПериодыАктуальностиОбъектовЭксплуатации

Регистры сведений регистрируют только уникальные записи. Если такая запись есть, происходит исключение. Заверните в модуле проведения по этим регистрам в попытку-исключение.

kipkoalex Подменю пользователя
сообщение 10.11.16, 15:59
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Acid @ Сегодня, 13:57 * ,
Прошу прощения за, возможно, некорректную просьбу, но можете написать что конкретно нужно сделать?) Как я понял, внести изменения в модуль этого регистра, но какие?

Vofka Подменю пользователя
сообщение 10.11.16, 17:23
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 12063
Из: Киев
Спасибо сказали: 3516 раз
Рейтинг: 2659.7

Текущий документ пытается добавить запись в регистр сведений Периоды актуальности объектов эксплуатации, которая там уже есть. Надо понять, что в этот регистр пишется (проанализируйте содержимое документа, может интуитивно понятно будет), потом откройте этот регистр и посмотрите кто уже добавил запись, которую сейчас пытается добавить ваш документ. Возможно, после этого, станет понятнее что делать дальше.

Сообщение отредактировал Vofka - 10.11.16, 17:24


Signature
Услуги 1С программиста

kipkoalex Подменю пользователя
сообщение 11.11.16, 0:44
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Вчера, 17:23 * ,
Записал короткое видео (1 минута), в котором показываются мои действия, и записи в регистре сведений "Периоды актуальности объектов эксплуатации" во времени. Вот ссылка:
[необходимо зарегистрироваться для просмотра ссылки]

andr_andrey Подменю пользователя
сообщение 11.11.16, 10:57
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 47 раз
Рейтинг: 43.2

Вот что вы пишете в регистр:


Это результат запроса:
////////////////////////////////////////////////////////////////////////////////
// ПериодыАктуальностиОбъектовЭксплуатации
ВЫБРАТЬ РАЗЛИЧНЫЕ
    &ДатаРегистрации КАК Период,
    ВЫБОР
        КОГДА Наработки.ОбъектЭксплуатации ССЫЛКА Справочник.ОбъектыЭксплуатации
            ТОГДА Наработки.ОбъектЭксплуатации
        ИНАЧЕ Наработки.ОбъектЭксплуатации.Владелец
    КОНЕЦ КАК ОбъектЭксплуатации
ИЗ
    Документ.РегистрацияНаработок.Наработки КАК Наработки
ГДЕ
    Наработки.Ссылка = &Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    &ДатаРегистрации,
    ВЫБОР
        КОГДА Наработки.ОбъектЭксплуатации ССЫЛКА Справочник.ОбъектыЭксплуатации
            ТОГДА Наработки.ОбъектЭксплуатации
        ИНАЧЕ Наработки.ОбъектЭксплуатации.Владелец
    КОНЕЦ
ИЗ
    Документ.РегистрацияНаработок.РасчетныеНаработки КАК Наработки
ГДЕ
    Наработки.Ссылка = &Ссылка;


Вот код процедуры проведения без сокращения:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);
    
    Документы.РегистрацияНаработок.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);
    
    ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
    
    Документы.РегистрацияНаработок.ОтразитьНаработкиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //++ НЕ УТКА
    ОбъектыЭксплуатации.ОтразитьПериодыАктуальностиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //-- НЕ УТКА
    
    СформироватьСписокРегистровДляКонтроля();
    
    ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
    
    ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
    
    ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);
    
КонецПроцедуры


П.С. Если вы хотите внедрить у себя ERP2, рекомендую не делать этого без толковых 1С-разработчиков, слишком много багов в этом продукте.


Signature
#define private public

Acid Подменю пользователя
сообщение 11.11.16, 11:00
Сообщение #9

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 1899
Из: Занзибар
Спасибо сказали: 300 раз
Рейтинг: 185.7

Если по простому, то так:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);
    
    Документы.РегистрацияНаработок.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);
    
    ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
    
    Документы.РегистрацияНаработок.ОтразитьНаработкиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //++ НЕ УТКА
    ОбъектыЭксплуатации.ОтразитьПериодыАктуальностиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //-- НЕ УТКА
    
    СформироватьСписокРегистровДляКонтроля();


   Попытка
       ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
   Исключение
       сообщить("запись с такими значениями уже присутствует в регистре.");
   КонецПопытки;

    ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
    
    ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);
    
КонецПроцедуры

А если скурпулезно, то нужно залезть в процедуру ПроведениеСервер.ЗаписатьНаборыЗаписей, и там уже вставлять Попытку-Исключение для конкретного регистра.

andr_andrey Подменю пользователя
сообщение 11.11.16, 12:00
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 47 раз
Рейтинг: 43.2

Acid @ Сегодня, 11:00 * ,
Проблема в реализации отбора данных для записи в регистр.
В документе есть две табличных части, одна для заполнения пользователем, вторая для разузлования по узлам объекта эксплуатации, которая заполняется автоматически (корректно).
А запрос для отбора построен таким образом, что дублирует строки и естественно при записи дубликатов в регистр будет ошибка.


Signature
#define private public

kipkoalex Подменю пользователя
сообщение 11.11.16, 14:54
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Acid @ Сегодня, 11:00 * ,
Добавил предложенный вами код, к сожалению проблема не решилась. Привожу полный текст процедуры из документа "РегистрацияНаработок":

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);
    
    Документы.РегистрацияНаработок.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);
    
    ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
    
    Документы.РегистрацияНаработок.ОтразитьНаработкиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //++ НЕ УТКА
    ОбъектыЭксплуатации.ОтразитьПериодыАктуальностиОбъектовЭксплуатации(ДополнительныеСвойства, Движения, Отказ);
    //-- НЕ УТКА
    
    СформироватьСписокРегистровДляКонтроля();
    
    
   Попытка
       ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
   Исключение
       сообщить("запись с такими значениями уже присутствует в регистре.");
   КонецПопытки;
    
       //ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
    ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
    
    ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);
    
КонецПроцедуры


andr_andrey @ Сегодня, 10:57 * ,
Безусловно - уже сейчас мы видим некоторые вещи, которые хотелось бы добавить в систему. Но, для начала, нам интересно попробовать именно этот модуль - "Управление ремонтами" на небольшом подразделении.
Может знаете кто на форуме разбирается в этой системе (или вы сможете взяться за работу, в перспективе?)?


 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 11.11.16, 15:07

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.01.17, 0:56
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне