|   |   | 
| 
 | Как вам такой код работы с РС? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Обработка 17.09.21✎ 08:28 | 
        Вот таких записей у меня много оказалось.
 Постарался кто-то из предыдущих... НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ДокЗаказаПокупателя); НаборЗаписей.Отбор.Свойство.Установить(СтатусCOF000047); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ДокЗаказаПокупателя; Запись.Свойство = СтатусCOF000047; Запись.Значение = Справочники.А_СтатусыЗаказов.НайтиПоНаименованию("Возврат"); Запись.Записать(); | |||
| 1
    
        Обработка 17.09.21✎ 08:28 | 
        Нафига набором отбирать и чистить запись потом менеджером писать еще?     | |||
| 2
    
        Галахад гуру 17.09.21✎ 08:33 | 
        (0) Ну что сказать. Старательный программист...     | |||
| 3
    
        ДенисЧ 17.09.21✎ 08:42 | 
        Зато гарантировано там ничего лишнего не будет...     | |||
| 4
    
        Mikeware 17.09.21✎ 08:47 | 
        (3) для гарантии надо минимум три раза очистить-записать... а потом еще прочитать и проверить...     | |||
| 5
    
        ДенисЧ 17.09.21✎ 08:51 | 
        (4) Ну, я так понимаю, ТС не в ФСБ работает, это там такие способы практикуются... Да ещё с перезаписью 19ю паттернами...     | |||
| 6
    
        Обработка 17.09.21✎ 08:53 | 
        Я начал рефакторинг делать даже статусы были через найти . Я вытащил их в переменные.
 И тут я увидел такой расклад ))) СтатусCOF000050 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("COF000050"); //Строка 28 - [N] Новый СтатусCOF000047 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("COF000047"); //СпрСтатус 29 - Новый СтатусCOF000027 = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("COF000027"); //Строка 30 - N Если Строка(Статус) = "Новый" Тогда //28 строка НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ДокЗаказаПокупателя); НаборЗаписей.Отбор.Свойство.Установить(СтатусCOF000050); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ДокЗаказаПокупателя; Запись.Свойство = СтатусCOF000050; Запись.Значение = "[N] Новый"; Запись.Записать(); //29 строка НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ДокЗаказаПокупателя); НаборЗаписей.Отбор.Свойство.Установить(СтатусCOF000047); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ДокЗаказаПокупателя; Запись.Свойство = СтатусCOF000047; Запись.Значение = Справочники.А_СтатусыЗаказов.НайтиПоНаименованию("Новый"); Запись.Записать(); //30 строка НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ДокЗаказаПокупателя); НаборЗаписей.Отбор.Свойство.Установить(СтатусCOF000027); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ДокЗаказаПокупателя; Запись.Свойство = СтатусCOF000027; Запись.Значение = "N"; Запись.Записать(); ИначеЕсли Строка(Статус) = "В обработке" Тогда | |||
| 7
    
        Ненавижу 1С гуру 17.09.21✎ 08:54 | 
        Вы лучше скажите зачем платформа заставляет заполнять измерения, участвующие в отборе, если никаким другим образом (кроме как значениями отбора) их заполнить невозможно?     | |||
| 8
    
        ДенисЧ 17.09.21✎ 08:55 | 
        (6) "Я начал рефакторинг"
 Надеюсь, у тебя 100% code testing coverage? | |||
| 9
    
        Ненавижу 1С гуру 17.09.21✎ 08:55 | 
        (6) мотивация по количеству строк кода     | |||
| 10
    
        Mikeware 17.09.21✎ 08:56 | 
        (7) "так заведено в этом зоопарке"©     | |||
| 11
    
        Вафель 17.09.21✎ 08:57 | 
        Очистить не не нужно. Можно сразу писать | |||
| 12
    
        Mikeware 17.09.21✎ 09:00 | 
        (11) а зачем двойное отрицание?     | |||
| 13
    
        Широкий 17.09.21✎ 09:02 | 
        (11) ладно что хоть не читает записи     | |||
| 14
    
        Обработка 17.09.21✎ 09:03 | 
        Кодеры нынче не читают мануалы.
 https://its.1c.ru/db/metod8dev/content/2486/hdoc НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(ПолеВводаНоменклатура); Для Каждого СтрокаТаблицы Из ТаблицаСвойств Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Объект = ПолеВводаНоменклатура; НоваяЗапись.Свойство = СтрокаТаблицы.Свойство; НоваяЗапись.Значение = СтрокаТаблицы.ЗначениеСвойства; КонецЦикла; НаборЗаписей.Записать(); В результате выполнения этого кода новые записи будут добавлены в регистр, или, если регистр уже содержит записи с указанным значением измерения "Объект" (по которому установлен отбор в наборе записей), - существующие записи будут заменены новыми. | |||
| 15
    
        Галахад гуру 17.09.21✎ 09:04 | 
        (14) Покажешь свой код после рефакторинга? :-)     | |||
| 16
    
        Обработка 17.09.21✎ 09:06 | 
        (15) Да тут куда не плюнь везде засада.
 Просто руки опускаются. Коллега говорит - забей. Работает и не трожь, пока нам поддержать работу баз до перехода в КА2. ... | |||
| 17
    
        Галахад гуру 17.09.21✎ 09:07 | 
        (16) Коллега не прав. Наверное часть функционала придется переносить и в КА2.     | |||
| 18
    
        Обработка 17.09.21✎ 09:08 | 
        Кстати как лучше набором отобрать и записать или просто тупо менеджером записать?     | |||
| 19
    
        Обработка 17.09.21✎ 09:09 | 
        + 18 В обсуждении пишут что для одной записи не принципиально.     | |||
| 20
    
        Megas 17.09.21✎ 10:22 | 
        (16) Наоборот норм,  берёшь и исправляешь, даже думать не нужно. И сразу виден результат! 
 Очень приятные задачи, расслабляют! | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |