8.х Изменить запись в регистре сведений

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем rockedit, 25 апр 2012.

  1. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Не верю что РС Штрихкоды независимый :)

    Или у вас самописная конфа ?
  2. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    нет, обычная розница.

    Вложения:

  3. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Понимаете, когда вы создаете набор записей в регистре, он их добавляет, а не перезаписывать. Предполагаю, что нужно получать значения из этих регистров, и исправлять.
  4. TopicStarter Overlay
    rockedit
    Offline

    rockedit Опытный в 1С

    Регистрация:
    6 дек 2010
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Ну да, нужно именно изменить существующие, но вот только как?
  5. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Вот, используйте:
    Код:
    Процедура ПереопределитьЦеныНажатие(Элемент)
    // Подготовить менеджер записи
    Запись = РегистрыСведений.ПерсонифицированныйПрайс.СоздатьМенеджерЗаписи();
    // Получить данные записей, соответствующих условиям
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ПерсонифицированныйПрайс.Период,
    | ПерсонифицированныйПрайс.Покупатель,
    | ПерсонифицированныйПрайс.Номенклатура,
    | ПерсонифицированныйПрайс.Цена
    |ИЗ
    | РегистрСведений.ПерсонифицированныйПрайс КАК ПерсонифицированныйПрайс
    |ГДЕ
    | ПерсонифицированныйПрайс.Номенклатура.Наименование ПОДОБНО ""%принтер%"" И ПерсонифицированныйПрайс.Цена < 300";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    // Установить ключевые поля менеджера записи
    Запись.Период = Выборка.Период;
    Запись.Покупатель = Выборка.Покупатель;
    Запись.Номенклатура = Выборка.Номенклатура;
    
    // Прочитать запись из базы данных
    Запись.Прочитать();
    
    // Убедиться, что запись все еще есть в базе данных
    Если Запись.Выбран() Тогда
    
    // Переопределить покупателя
    Запись.Покупатель = ВыделенныйПокупатель; 
    // Установить новую цену
    Запись.Цена = Выборка.Цена * 1.2;
    // Записать модифицированную запись в базу данных
    Запись.Записать();
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    Это только как пример, надеюсь разбиретесь, что к чему:)
  6. for_maricat
    Offline

    for_maricat Опытный в 1С

    Регистрация:
    11 ноя 2010
    Сообщения:
    236
    Симпатии:
    0
    Баллы:
    26
    Там, вроде, у самого набора записей, или у метода Записать() есть свойство "замещать", которое надо установить.
  7. il1973
    Offline

    il1973

    Регистрация:
    6 май 2006
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Читаем СП:

    Параметры:

    <Замещать> (необязательный)
    Тип: Булево.
    Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям
    Значение по умолчанию: Истина

    *Поэтому ничего указывать не нужно, если нужно перезаписать данные
Похожие темы
  1. Berezin
    Ответов:
    4
    Просмотров:
    767
  2. Pentыch
    Ответов:
    9
    Просмотров:
    2.060
  3. MyNameNoName
    Ответов:
    2
    Просмотров:
    337
  4. Peroman
    Ответов:
    9
    Просмотров:
    750
  5. alexser94
    Ответов:
    1
    Просмотров:
    326
Загрузка...

Поделиться этой страницей