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

Хранилище

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

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



> Внешняя обработка. Программная загрузка цен номенклатуры. Версия платформы: 8.3.10.2667, версия конфигуратора: 2.4.1.206          
@lex Подменю пользователя
сообщение 24.08.18, 7:38
Сообщение #1

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

Добрый день! Написал внешнюю обработку по загрузке цен номенклатуры. Документ "Установка цен номенклатуры". Движение происходит в регистре сведений "ЦеныНоменклатуры". Загрузка данных происходит из файла Excel в таблицу на форме. Затем циклом по таблице добавляю в документ.
документУстановкаЦен                       = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    документУстановкаЦен.Дата                = РеквизитДатаУстановкиЦены; // Дата, с которой начинает действовать цена с поля формы
    документУстановкаЦен.Ответственный = Пользователи.ТекущийПользователь();
    документУстановкаЦен.Согласован      = Истина;
    документУстановкаЦен.Статус             = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
    
    
    // Заполняем таб.часть "ВидыЦен".
    новаяСтрокаВидЦены              = документУстановкаЦен.ВидыЦен.Добавить();
    новаяСтрокаВидЦены.ВидЦены      = РеквизитВидЦены; // Вид цены, с поля формы
    
    // Заполняем таб.часть "НаборыЗначенийДоступа".
    новаяСтрокаНаборыЗначенийДоступа                           = документУстановкаЦен.НаборыЗначенийДоступа.Добавить();
    новаяСтрокаНаборыЗначенийДоступа.ЗначениеДоступа = РеквизитВидЦены;     
        
    Для Каждого стрТЗ Из РеквизитТаблицаСНовымиЦенами Цикл
        
        // Заполняем таб.часть "Товар".
        новаяСтрокаТовар                                    = документУстановкаЦен.Товары.Добавить();
        новаяСтрокаТовар.ВидЦены                      = РеквизитВидЦены;
        новаяСтрокаТовар.Номенклатура              = стрТЗ.КолонкаНоменклатура;
        новаяСтрокаТовар.Цена                            = стрТЗ.КолонкаЦена;
        новаяСтрокаТовар.ЦенаИзмененаВручную = Истина;             
                        
    КонецЦикла;
    
    //документУстановкаЦен.Записать(РежимЗаписиДокумента.Запись);
    Попытка
        документУстановкаЦен.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
        Сообщить(ОписаниеОшибки());         
    КонецПопытки;


При попытке провести документ (программно) выдается ошибка:
{ВнешняяОбработка.УстановкаЦенНаТовары.Форма.Форма.Форма(283)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : ЦеныНоменклатуры: 24.08.2018 0:00:00, Услуги основным цехам, , Минимальная цена (Регистр сведений: Цены номенклатуры; Номер строки: 1520). Что не так делаю, подскажите, пожалуйста?
Примечание: Если документ записать программно, а затем его в пользовательском режиме провести, то он проводится без проблем.

Спасибо сказали: ebuofficial2705@gmail.com,

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

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(@lex @ 24.08.18, 8:38) *
Запись с такими ключевыми полями существует! : ЦеныНоменклатуры: 24.08.2018 0:00:00, Услуги основным цехам, , Минимальная цена (Регистр сведений: Цены номенклатуры; Номер строки: 1520)

Очень лаконичное сообщение.
Поставьте точку останова в модуле объекта в начале процедуры ОбработкаПроведения и посмотрите движения перед записью, дальше задаёте себе вопросы когда, где и почему сформировали дублирующие строки.

Даже если очень захотеть, то не хватает названия конфигурации (есть подозрение, что это ERP), самой внешней обработки и экселя с данными для ответа на ваш вопрос.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Спасибо сказали: @lex,

@lex Подменю пользователя
сообщение 24.08.18, 13:11
Сообщение #3

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

andr_andrey @ Сегодня, 14:12 * ,
Спасибо за ответ! Все, разобрался. Да, это ERP. Проблемы были две, 1-я это дубликаты в файле эксель. 2-я - в регистре сведений некоторые позиции уже были заведены на дату, которую выбирал с той же ценой, поэтому и ругался.

ebuofficial2705@... Подменю пользователя
сообщение 18.10.18, 22:44
Сообщение #4

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

@lex @ 24.08.18, 8:38 * ,
Здравствуйте, можете поделиться вашей обработкой ?

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


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

 

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