Имя: Пароль:
1C
1С v8
Обработка создания новых записей в регистре сведений.
0 progaoff
 
11.09.15
15:46
НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей();
    
    НаборЗаписей.Отбор.Период.Установить(Дата);
    НаборЗаписей.Отбор.Номенклатура.Установить(Номенклатура);
    
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Период,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Контрагент,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдИзм,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Организация,
                 |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена
                 |ИЗ
                 |    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&Дата, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних";
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    Запрос.УстановитьПараметр("Дата",Дата);
    ТЗ=Запрос.Выполнить().Выгрузить();
    Для Каждого СтрокаТЗ Из ТЗ Цикл
        //записываем все элементы из табличной части в регистр сведений "ЦеныНоменклатурыКонтрагентов"
        НовЗапись = НаборЗаписей.Добавить();
        //
        НовЗапись.Период        =    Дата;
        НовЗапись.Номенклатура    =    Номенклатура;
        НовЗапись.Контрагент    =    СтрокаТЗ.Контрагент;
        НовЗапись.Цена            =    Цена;
        НовЗапись.ТипЦен        =    СтрокаТЗ.ТипЦен;
        НовЗапись.ЕдИзм            =    Номенклатура.ОсновнаяЕдиницаИзмерения;
        НовЗапись.Организация    =    СтрокаТЗ.Организация;
    КонецЦикла;
    Попытка
        НаборЗаписей.Записать(ИСТИНА);
    Исключение
    КонецПопытки;
На данный момент, этот код переделывает уже существующие записи в регистре. Как сделать что бы не заменял старые а создавал новые записи?
1 разработчик 1с
 
11.09.15
15:46
прочитать()
2 ДенисЧ
 
11.09.15
15:47
Записать(Ложь) ?
3 progaoff
 
11.09.15
15:48
(2) не понял?
4 ДенисЧ
 
11.09.15
15:48
(3) это плохо
5 progaoff
 
11.09.15
15:50
точнее даже не переделать а дополнить ее, так как если будет добавлятся новая позиция у меня оператор отказывается забивать цены руками))
6 ДенисЧ
 
11.09.15
15:52
(5) уволить ленивую скотину!
7 progaoff
 
11.09.15
15:53
(6) я так понял это Вы про меня)?
8 ДенисЧ
 
11.09.15
15:54
(7) Значит, у вас две ленивых скотины в таком случае...
9 progaoff
 
11.09.15
15:56
а как на счет Если СтркаТЗ.Количество = 0 Тогда
10 progaoff
 
11.09.15
15:56
ну и дальше у меня еще не очень хватает знаний
11 progaoff
 
11.09.15
16:20
(10) спасибо что не послали)
12 bootini
 
11.09.15
18:08
(11) не только не послали, но и в (2) ответили

РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
Записать (Write)
Синтаксис:

Записать(<Замещать>)
Параметры:

<Замещать> (необязательный)

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

Записывает набор записей в базу данных. В зависимости от переданного параметра, может быть выполнено добавление записей или их замещение.
13 progaoff
 
14.09.15
12:59
А если у меня несколько организаций и одну цену надо добавить для всех?
14 progaoff
 
14.09.15
13:14
Как быть?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.