Имя: Пароль:
1C
1С v8
v8: УдалитьРегистрациюИзменений регистра сведений
0 kolts23381
 
20.09.13
21:43
Есть код
    Запрос.Текст =  "ВЫБРАТЬ
                    |    НаличиеТовараСрезПоследних.Номенклатура,
                    |    НаличиеТовараСрезПоследних.Наличие,
                    |    НаличиеТовараСрезПоследних.Регистратор.Ссылка как Ссылка
                    |ИЗ
                    |    РегистрСведений.НаличиеТовара.СрезПоследних КАК НаличиеТовараСрезПоследних
                    |ГДЕ
                    |    НаличиеТовараСрезПоследних.Номенклатура В(&списокноменклатуры)";
    Запрос.УстановитьПараметр("СписокНоменклатуры",СписокНоменклатуры);                
    ВыборкаРегистраНаличие = Запрос.Выполнить().Выбрать();
    Пока ВыборкаРегистраНаличие.Следующий() Цикл
        ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,
                                            ЗаписьСообщения.НомерСообщения,ВыборкаРегистраНаличие.Ссылка);
    
        Пока ВыборкаИзменений.Следующий() Цикл
            Для Каждого Запись из ВыборкаИзменений.Получить() Цикл
                СписокИзмененныхЗначенийНоменклатуры.Добавить(Запись.Номенклатура);                
            КонецЦикла;
        КонецЦикла;
        
        ПланыОбмена.УдалитьРегистрациюИзменений(Ссылка,ВыборкаРегистраНаличие.Ссылка);
    КонецЦикла;

Ошибка:
Недопустимое значение параметра (параметр номер '2')
Необходимо удалить изменения связанные с данным регистром сведений.  
С номенклатурой такое прокатывает
ПланыОбмена.УдалитьРегистрациюИзменений(Ссылка,ВыборкаНоменклатуры.Ссылка) - такой код немного выше работает.
1 Лефмихалыч
 
20.09.13
21:46
need moar ссылка.ссылка.ссылка.ссылка.ссылка.ссылка


а еще - ты задумывался когда-нибудь, какой тип у тебя в переменной ВыборкаРегистраНаличие.Ссылка? Подумай об этом в контексте того, что получается, если кастануть Ctrl+F1 на УдалитьРегистрациюИзменений
2 AlexTim03
 
20.09.13
21:48
Для удаление регистрации по регистру надо передавать во второй параметр набор записей. Причем с отбор по измерениям, у которых стоит признак "основной отбор"
3 kolts23381
 
20.09.13
21:49
(2 )ты не поверишь но тип значения Документ ссылка: Наличие товара. Я вчера программировал целый день. Могу конечно ошибаться но вроде такая конструкция работала. Основной отбор не нашел.
4 Лефмихалыч
 
20.09.13
21:52
(3) я в курсе, что там документссылка, потому что я, блеать, программирую уже лет 13
5 kolts23381
 
20.09.13
21:54
Ты крут. ЧСВ наверно как у дартаньяна? По теме можешь помочь? Если нет, угадай куда идти
6 Euguln
 
20.09.13
22:11
(5) Уважаемый Лефмихалыч имел в виду, что за 13 лет программирования устал уже от пыонеров, которым даже лень заглянуть в СП, они сразу начинают отвлекать уважаемых людей от важных дел.

ПланыОбменаМенеджер (ExchangePlansManager)
УдалитьРегистрациюИзменений (DeleteChangeRecords)
Синтаксис:

УдалитьРегистрациюИзменений(<Узлы>, <Данные>)
Параметры:

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

Тип: ПланОбменаСсылка.<Имя плана обмена>; Массив.
Одиночное значение типа ПланОбменаСсылка.<Имя плана обмена> или массив таких значений, показывающие для каких узлов удаляются записи регистрации изменений.
<Данные> (необязательный)

Тип: Метаданные, Неопределено; УдалениеОбъекта; Число; <Данные>.
7 Лефмихалыч
 
20.09.13
22:14
(5) у тебя вся помощь по ctrl+f1 на русском языке сама открывается, но ты не в силах одновременно две кнопки нажать. Чем тебе помочь, я не знаю
8 Лефмихалыч
 
20.09.13
22:15
(6) спасибо. Там суть в описании параметра Данные. Вот их надо читать внимательно глазами, включив голову в розетку, если необходимо. Там всё написано
9 kolts23381
 
20.09.13
22:31
Ребята, не делайте из 1с сакральное знание. У меня стоит задача я пытаюсь ее решить. Читал и СП и гуглил решения не нашел.
(5) Не надо быть умником. Таких уважать не за что.
10 kolts23381
 
20.09.13
22:36
У меня цейтнот и застопорился на такой ерунде. Неужели трудно помочь?
11 Лефмихалыч
 
20.09.13
22:54
(10) тут ответ на все твои страдания дан четыре раза. Причем в (2) дан такой ответ, что как-то сильнее ответить не возможно.
12 Лефмихалыч
 
20.09.13
22:55
(11) это я к тому, что, если не понятно что-то в ответах (например в ответе (2) ), то надо задавать конкретные вопросы о том, что не понятно (например в ответе (2) )
13 hhhh
 
20.09.13
23:02
(10) ну открой в конфигураторе этот план обмена и проанализируй у него состав. Какие документы там указаны?
14 kolts23381
 
20.09.13
23:08
Блин :) (12) Не могу я понять что передать в качестве  2 параметра функции  ПланыОбмена.УдалитьРегистрациюИзменений() Мне надо удалить все изменения связанные с определенной номенклатурой. (13) Этот регистр указан в плане обмена. Указана авторегистрация. Выше точно таким же способом удаляю все изменения связанные с номенклатурой. А теперь надо удалить все записи регистра сведений в которых есть эта номенклатура.
Пробую через набор записей

Набор = РегистрыСведений.НаличиеТовара.СоздатьНаборЗаписей();
Набор.Отбор.Номенклатура.Установить(ВыборкаРегистраНаличие.Номенклатура);
ПланыОбмена.УдалитьРегистрациюИзменений(Ссылка,Набор);
15 hhhh
 
20.09.13
23:13
(14) товарищ из (0) ведь четко указал, что регистр подчинен регистратору. Какого х вы фигачите отбор по номенклатуре?
16 kolts23381
 
20.09.13
23:15
Товарищ из 0 это я.
17 Лефмихалыч
 
20.09.13
23:21
(14) вот именно на вопрос: "что передать" есть прямо ответ в (2) - набор записей с основным отбором. Основной отбор для подчиненных регистров - по регистратору. Я х/з как еще сказать
18 hhhh
 
20.09.13
23:29
(17) не взлетит. Срез последних по номенклатуре, а отбор по регистратору. Да еще и выборка изменений по номеру сообщения.
19 kolts23381
 
20.09.13
23:34
в общем отбор по регистратору, но нужно удалить только записи связанные с определенной номенклатурой. Короче видимо придется ковырять еще долго.
20 Лефмихалыч
 
20.09.13
23:35
должно, кстати, говорить, что нет такого поля Отбор.Номенклатура, если регистр подчиненный
21 kolts23381
 
20.09.13
23:37
Так и говорит. Тот код вообще левый.
22 Лефмихалыч
 
20.09.13
23:39
(21) какая половая религия мешает взять регистраторы из запроса (0) и в цикле установить отборы по ним и передавать получившийся набор во второй параметр?
23 Лефмихалыч
 
20.09.13
23:40
а, или ты лелеешь надежду, что из таблицы изменений можно удалить только движения по конкретной номенклатуре и при этом оставить все остальное? Ну так это хрен там - подчиненные регистры регистрируются всем набором по регистратору
24 kolts23381
 
20.09.13
23:45
Пошел искать синтакс набора записей. Понял что нельзя, а хочу. Ладно этот регистр сведений Наличие сам добавил. Но тоже самое надо делать и с Регистром ОстаткиНаСкладах. Видимо придется в конфу добавить независимый регистр ОстаткиНаСкладах и добавить заполнение его в документах. Или заполнение в существующем регистре ОстаткиНаСкладах добавить. Надо искать другое решение. Слишком много геммороя
25 Лефмихалыч
 
20.09.13
23:49
(24) >Видимо придется в конфу добавить независимый регистр ОстаткиНаСкладах

спасибо, поржал

пройди хотя бы курс "Основные объекта", а? Ну ей богу ты пальцем тычешь в места, которые для этого совершенно не предназначены. И палец испачкаешь, и удовольствия не получишь...
26 kolts23381
 
21.09.13
00:01
Я написал на 95% выгрузку в Prestashop. А ты слишком зациклен. Для меня это очередная задача которую надо решить.
И она получается и получится без курсов. Просто придется немного больше времени потратить.
27 Лефмихалыч
 
21.09.13
00:04
Лефмихалыч зевает
28 kolts23381
 
21.09.13
00:08
Ладно удачи :) Ушел доделывать оставшиеся 5 процентов
29 MKZM
 
21.09.13
00:14
И палец испачкаешь, и удовольствия не получишь...

Ги )
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший