|
Восстановить коды у элементов справочника | ☑ | ||
---|---|---|---|---|
0
dvrk
14.02.23
✎
10:32
|
Привет, есть база, у контрагентов поменяли коды, есть копия, где коды не изменены, как в рабочей базе сделать коды старые?
|
|||
1
OldCondom
14.02.23
✎
10:34
|
поиск по уид, впихать временные коды и восстановить последовательность нумерации. ИЛи надо коды 1 в 1?
|
|||
2
dvrk
14.02.23
✎
10:35
|
(1) надо коды вернуть, т.к. в БУХ контрагенты уже выгрузились с этими кодами и сейчас задваиваются при обмене
|
|||
3
Aleksey
14.02.23
✎
10:35
|
А зачем? Увас бизнес процессы завязаны на кодах клиента?
|
|||
4
dvrk
14.02.23
✎
10:35
|
(3) в 2 написал..
|
|||
5
Aleksey
14.02.23
✎
10:36
|
(2) обмен самописный? Потому что типовому обмену пофиг на коды
|
|||
6
dvrk
14.02.23
✎
10:36
|
(5) угу правила обмена написаны центральным офисом
|
|||
7
dvrk
14.02.23
✎
10:36
|
у меня задача именно вернуть все коды в рабочей базе какие были
|
|||
8
arsik
гуру
14.02.23
✎
10:41
|
(7) Ну самое простое в бэкапе, где коды нормальные, создай тз с колонками Контрагент, код и заполни ее.
Потом ЗначениевСтроку(ТЗ). В основной базе ЗначениеИзСтроки(ТЗСтрокой). Ну а далее разберешся. |
|||
9
dvrk
14.02.23
✎
10:42
|
А если взять обработку обмена между идентичными конфигурациями, выгрузить справочник контрагентов из бэкапа и загрузить в рабочую, те, что с неправильными кодами перепишутся на правильный?
|
|||
10
НЕА123
14.02.23
✎
10:49
|
(9)
на форуме такой вопрос точно не следует задавать. проконсультируйся со спецами на месте. |
|||
11
OldCondom
14.02.23
✎
10:49
|
(9) если укажешь поиск по ГУИД, то перепишутся. Кстати тоже вариант.
|
|||
12
OldCondom
14.02.23
✎
10:50
|
(10) так он правила не пишет, там же ЦЕНТРАЛЬНЫЙ офис)
|
|||
13
mikecool
14.02.23
✎
10:53
|
(9) а также затрутся все изменения, что пользователи внесли в справочник
если задаешь такие вопросы - то лучше не занимайся этим |
|||
14
Kassern
14.02.23
✎
10:55
|
(0) Если гуиды одинаковые, то задача простая. Сопоставляете по гуиду и меняете коды.
|
|||
15
mistеr
14.02.23
✎
10:59
|
(14) +1
Например с помощью обработки из ИР |
|||
16
dvrk
14.02.23
✎
10:59
|
(13) про изменения я знаю, мне главное коды восстановить (14) а в случае чего уиды могут стать разными?
|
|||
17
mistеr
14.02.23
✎
11:02
|
(16) Если контрагенты не приходят извне (из бухии например), то не могут.
|
|||
18
dvrk
14.02.23
✎
11:04
|
(17) не, контрагенты заводятся в этой базе и ниоткуда не приходят, я поэтому и спросил с чего они могут стать разными мб после манипуляций какой нибудь обработкой с ними
ну попробую тогда выгрузкой... |
|||
19
Aleksey
14.02.23
✎
11:15
|
(18) ну так кд 2.0 в руки добавь перенос 1 реквизита код и поставь галку не создавать если не найдены. Делов то, на 2 минуты мышкой покликать
|
|||
20
dvrk
14.02.23
✎
11:15
|
(19) ни разу кд не видел в глаза
|
|||
21
Aleksey
14.02.23
✎
11:16
|
главное не забудь прописать Объект.обменданными.загрузка = истина при записи, чтобы на дубли кодов не ругался
|
|||
22
Kassern
14.02.23
✎
11:16
|
(20) можно и без кд. В файлик выгрузите 2 колонки, первая гуид, вторая - нужный код. В базе где корявые кода, загрузите этот файлик. Ищите по гуиду, если находите, то меняете код. Делов на 3мин
|
|||
23
dvrk
14.02.23
✎
11:21
|
(22) я не понимаю, мне обработку такую надо написать или вы о какой то готовой говорите?
|
|||
24
mistеr
14.02.23
✎
11:24
|
(23) Или написать или воспользоваться мега-универсальной Загрузка табличных данных из ИР.
Но в твоем случае наверное проще будет написать, чем разобраться в ней и не наделать ошибок. :) |
|||
25
mistеr
14.02.23
✎
11:25
|
Кстати написать можно в консоли кода ИР
|
|||
26
dvrk
14.02.23
✎
11:26
|
(25) да я позавчера впервые узнал об ИР)
|
|||
27
Kassern
14.02.23
✎
11:29
|
(23) Напишите сами, это всего несколько строчек кода
|
|||
28
dvrk
14.02.23
✎
11:43
|
ещё вопрос, правильно ли будет сделать так:
База с правильными кодами, открываю список контрагентов - "вывести список", вывожу колонки Код и Наименование База с неправильными, открываю загрузка данных из табличного документа, копирую список Код и наименование, делаю код и наименование колонками поиска, нажимаю галочку не создавать новые и "загрузить" ? |
|||
29
CepeLLlka
14.02.23
✎
11:44
|
Если такие траблы с ИР, то используйте просто "ВыгрузкаЗагрузкаХМЛ", лишние галки уберите, чтобы выгрузились только нужные справочники
|
|||
30
dvrk
14.02.23
✎
11:45
|
(29) я подумал и понял, что мне не подойдёт, там реально много данных менялось и мне нужно чтобы поменялся ТОЛЬКО код
|
|||
31
Kassern
14.02.23
✎
11:47
|
(28) Вы программист 1с? Умеете писать код? Вы вообще поняли, что написали? По какой колонке вы собираетесь сопоставлять? По наименованию? Сами же пишите " там реально много данных менялось". Ответ на ваш вопрос тут: (27)
|
|||
32
Kassern
14.02.23
✎
11:48
|
Вы случаем не знакомы с ливингстаром и ночным охотником?)
|
|||
33
mistеr
14.02.23
✎
11:48
|
(28) Не правильно. И код и наименование могли поменяться
|
|||
34
dvrk
14.02.23
✎
11:48
|
(31) наименование не могло меняться, код менялся
|
|||
35
Kassern
14.02.23
✎
11:49
|
(34) "наименование не могло меняться" - зуб даете?)
|
|||
36
OldCondom
14.02.23
✎
11:53
|
Пиши в центральный офис, чтобы правила переделали на поиск по ГУИД. А то назревают проблемы по серьезнее.
|
|||
37
dvrk
14.02.23
✎
11:56
|
(35) в моем случае да, а в целом могло
|
|||
38
CepeLLlka
14.02.23
✎
11:56
|
(30)Если реально менялись, то конечно беда. Можно через ЖР посмотреть какие объекты менялись, и для них поменять код "вручную", если их немного конечно.
|
|||
39
dvrk
14.02.23
✎
12:21
|
чёт не пойму а как в экселе сделать такое:
есть 4 колонки Код Наименование Код1 Наименование1 мне нужно сделать так, чтобы были только имеющиеся в обеих колонках наименования |
|||
40
JeHer
14.02.23
✎
12:23
|
А нафига к этим кодам привязались? Ну изменились да изменились. И есть же ИНН
|
|||
41
dvrk
14.02.23
✎
12:24
|
(40) обмен такой в цо, нужно коды вернуть иначе дубликаты делаются
|
|||
42
JeHer
14.02.23
✎
12:25
|
Пусть перепишут на ГУИД или по ИНН
|
|||
43
dvrk
14.02.23
✎
12:27
|
(42) пусть перепишут, мне сейчас для сдачи отчетности нужно сделать то, о чем я написал..
|
|||
44
OldCondom
14.02.23
✎
12:31
|
То есть тебе не осилить задачу в выгрузке файла в две колонки "ГУИД|КОД" и загрузке этого файла, поиск по ГУИД -> замена кода?
|
|||
45
OldCondom
14.02.23
✎
12:36
|
Держи. Нейросеть не знает встроенных методов 1С, так что придется немного править. К примеру, sprav.НайтиПоЗначению("*");
Мне нужно в 1с написать код, который выгрузит GUID и код справочника "Контрагенты" в файл Для выгрузки GUID и кода справочника "Контрагенты" в файл в 1С необходимо написать следующий код: Copy code // Получаем ссылку на справочник "Контрагенты" sprav = Справочники.Контрагенты; // Получаем все элементы справочника всеЭлементы = sprav.НайтиПоЗначению("*"); // Создаем текстовый документ файл = Новый ТекстовыйДокумент; // Проходим по всем элементам справочника и записываем GUID и код в файл Для каждого элемента Из всеЭлементы Цикл файл.ДобавитьСтроку(Элемент.Код + ";" + Элемент.GUID); КонецЦикла; // Сохраняем файл файл.Записать("C:\путь\к\файлу.txt"); Здесь мы получаем ссылку на справочник "Контрагенты", получаем все элементы этого справочника, создаем новый текстовый документ, проходим по всем элементам справочника и записываем в файл GUID и код каждого элемента. Наконец, мы сохраняем файл по указанному пути. как теперь по этим данным в другой базе найти Контрагентов по GUID и поставить им коды из файла? Для того, чтобы по GUID из файла найти контрагентов в другой базе и присвоить им коды, можно написать следующий код на языке запросов (1C Query): // Открываем файл с GUID и кодами файл = Новый ТекстовыйДокумент; файл.Прочитать("C:\путь\к\файлу.txt"); // Проходим по строкам файла и ищем контрагентов по GUID Для каждой строки Из файл.ПолучитьТекст().Разделить("\r\n") Цикл // Разделяем строку на код и GUID элемент = СтрРазделить(строка, ";"); // Находим контрагента по GUID контрагент = Справочники.Контрагенты.НайтиПоГУИД(элемент[1]); // Если контрагент найден, то присваиваем ему код из файла Если контрагент <> Неопределено Тогда контрагент.Код = элемент[0]; контрагент.Записать(); КонецЕсли; КонецЦикла; Здесь мы открываем файл с GUID и кодами, проходим по строкам файла и ищем контрагентов по GUID. Если контрагент найден, то присваиваем ему код из файла и записываем изменения в базу данных. Код можно выполнить в любом месте конфигурации 1С, например, в обработке. |
|||
46
Kassern
14.02.23
✎
12:44
|
(45) Сейчас будут вопросы, что ошибки при записи файла: метод не определен "НайтиПоГУИД". ГПТ еще нужно подтянуть СП.
|
|||
47
OldCondom
14.02.23
✎
12:45
|
(46) вроде слышал, что она пишет на python и перевод на 1С)
А неделю назад два дня она вообще говорила, что я не знаю язык 1С. И правильно делала... |
|||
48
TormozIT
гуру
14.02.23
✎
16:35
|
Если есть уверенность, что другие реквизиты в справочнике не менялись (обычно ее нет), то "Выгрузка/загрузка данных XML" кажется лучшим выбором. Ее аналог в ИР кстати тоже есть - "Выгрузка/загрузка данных через файл" (выгружать можно и через инструмент "Подбор и обработка объектов" https://www.youtube.com/watch?v=MgDXX-qUrx0&t=1651s ).
Если же такой уверенности нет, то инструмент "Загрузка табличных данных" действительно будет оптимальным выбором. https://studio.youtube.com/video/S1ovPH-OR5g/edit |
|||
49
TormozIT
гуру
14.02.23
✎
16:36
|
(48) Последнюю ссылку исправляю https://www.youtube.com/watch?v=S1ovPH-OR5g
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |