Имя: Пароль:
1C
1C 7.7
v7: обмен через excel
,
0 YDen
 
19.05.21
12:18
Здравствуйте.
Подскажите пожалуйста. Есть документ с ТЧ в 2 столбца - наименование и цена. Нужно выгрузить ТЧ в excel, затем не меняя Наименование, изменив только Цену, загрузить обратно в ТЧ. Т.е своего рода обмен через excel.
Плиз может у кого есть рабочий пример или ссылка, поделитесь.

Благодарю
1 Ёпрст
 
19.05.21
12:40
Зачем для этого эксель ?!
2 Масянька
 
19.05.21
12:41
(1) Не в бровь, а в глаз :)
3 Ёпрст
 
19.05.21
12:41
(2) переключатель сделала ?
4 Mikeware
 
19.05.21
12:42
(3) лучше флажки...
5 Масянька
 
19.05.21
12:44
(3) Ты во мне сомневаешься? ;)
6 Ёпрст
 
19.05.21
12:51
(5) контролирую )
7 uno-group
 
19.05.21
12:52
(1) Многим в экселе цены править удобнее типа группой умножить, скопировать и т.д. А потом загрузить исправленное.
любую загрузку из ексель глянь там 10 строк кода
8 Андрей_Андреич
 
naïve
19.05.21
12:53
(7) Тогда зачем 1с?
9 YDen
 
19.05.21
12:59
(1) Я из другой программы переношу. А она только excel умеет.
10 uno-group
 
19.05.21
12:59
Скорее всего какой нибуть документ устанавливающий цены.
ВыгрузитьТабличнуюЧасть(ТЗ);
Тов=СоздатьОбъект("Справочник.ТМЦ");
Тов.ИспользоватьДату(РабочаяДата());
обЭксел = СоздатьОбъект("Excel.Application"); //создаем объект
НашФайл = обЭксел.Workbooks.Open(СокрЛП(Файл)); //Открываем файл
НашЛист = НашФайл.Sheets(1); //Устанавливаем нужный лист
Для i = 1 По 100 Цикл
Состояние("считывание строки: "+i);
Наименование = СокрЛП(НашЛист.Cells(i,1).Value);
Цена=Число(НашЛист.Cells(i,2).Value);
Если (ПустоеЗначение(Наименование =1) Тогда
  Продолжить;
КонецЕсли;
Ном=0;
Тов.НайтиПоНаименованию(Наименование );
Если Тз.НайтиЗначение(тов.ТекущийЭлемент(),ном,"Товар")=1 Тогда
     Тз.ПолучитьСтрокуПоНомеру(Ном);
     Тз.Цена=Цена;
Иначе
     Сообщить("Не удалось сопоставить: "+Наименование+" пропущен.");
    Продолжить;
КонецЕсли;
...
ЗагрузитьТабличнуюЧасть(тз);
11 YDen
 
19.05.21
13:02
(10) Нет. Вообще с бух не связана, самописная конфигурация. Я про цены написал для простоты.
12 YDen
 
19.05.21
13:04
(10) Плиз, еще бы код загрузки.
В 1с давно не кодил, очень давно.
13 uno-group
 
19.05.21
13:19
это код загрузки. выгрузки обычная печать и там сохранить как эксель или руками или скопировать процедуру и вместо таб.показать(); Таб.Записать(...,"хлс");
14 osa1C
 
19.05.21
13:24
(12) Мне одному показалось что код дали 1Сv8, а нужен для v7.7 ?
15 YDen
 
19.05.21
13:25
(14) Да, я в шапке темы указал - v7
16 osa1C
 
19.05.21
13:29
17 osa1C
 
19.05.21
13:29
(16) + Попроси его, Сергей поможет. Он у нас один из лучших клюшечников
18 Mikeware
 
19.05.21
13:30
(16) да в (10) все сказано. нахрена "тяжелая артиллерия"?
19 YDen
 
19.05.21
13:31
(18) А в (10) код для семерки?
20 Ёпрст
 
19.05.21
13:36
(19) да
21 YDen
 
19.05.21
13:39
Сенк всем, попробую.
22 uno-group
 
19.05.21
13:45
Тов.НайтиПоНаименованию(Наименование ) надо флаги добавить. + по хорошему выгружать не наименование а код и искать по коду
23 YDen
 
19.05.21
13:50
(22) Я же Наименование выгрузил в ексель и без изменения построчно забираю обратно. Изменений же нет.
Да у меня в ТЧ не более 30 строк. Просто вручную переносить - часты ошибки, пиз…лей получать надоело. :)
24 Ёпрст
 
19.05.21
13:51
(22) наименование не гарантирует уникальность, как и код..но в 7.7 код хоть что-то гарантирует.
25 osa1C
 
19.05.21
13:56
(18) да, что-то  перегрелся :) Мне тоже нужен ноутбук и в отпуск, как Гению )))
26 Mikeware
 
19.05.21
13:59
(25) сначала "100 кисок"...
27 YDen
 
19.05.21
14:06
(24) Ок, учту. Сенк.
28 Злопчинский
 
19.05.21
14:34
(17) Спасибо, поржал! ;-)
29 YDen
 
19.05.21
16:18
(28) Уважают значит :)
30 Злопчинский
 
19.05.21
16:31
(29) Боятся! ;-)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.