Имя: Пароль:
1C
1C 7.7
v7: Деноминация справочника. Нужна помощь
0 Standart
 
08.08.16
15:11
Дня доброго! Уважаемое сообщество!
Обращаюсь за помощью к Вам. По всей 1С - сделал деноминацию, но не взяло один справочник. Цены ТМЦ. Как не пробовал, не получается автоматом проденоминировать строки с ценами. Только выделять строку, нажимать кнопку. Может, кто подскажет? Запарюсь делать вручную 21859 строк...
[url=http://savepic.ru/10840960.htm][img]http://savepic.ru/10840960m.png[/img][/url]
1 Standart
 
08.08.16
15:12
2 Standart
 
08.08.16
15:12
3 Cyberhawk
 
08.08.16
15:13
А что у тебя будет с ценой 0.07?
4 Standart
 
08.08.16
15:18
(4), не обращайте внимания. это локальная 1С. в сетевой таких цен нет. Замечено верно. Спасибо. Всё, что от 1 до 100 рублей, должно иметь вид 0,01 коп.
5 HawkEye
 
08.08.16
15:33
(0) тут обработку придется писать.... строк так эдак 5-6...
сложно короче.
6 Garykom
 
гуру
08.08.16
15:34
(5) угу очень сложно... Оценить скоко содрать ))
7 Fedor-1971
 
08.08.16
16:59
(0) у тебя уже есть кнопка Пересчёт - подкрути ей обработчик на работу со всем списком. Только учти, что если после твоей деноминации будет цена меньше 1 коп, то цену нужно выставлять = 1 коп.
8 Standart
 
09.08.16
16:03
поправьте, если не трудно.
Процедура Выполнить()
     перем цена;
    СпрЦеныТМЦ=СоздатьОбъект("Справочник.ЦеныТМЦ");  
СпрЦеныТМЦ.ВыбратьЭлементы();
Пока СпрЦеныТМЦ.ПолучитьЭлемент()=1 цикл
      Если  СпрЦеныТМЦ.цена>0 тогда  
      Цена = СпрЦеныТМЦ.ТекущийЭлемент();
    СпрЦеныТМЦ.Цена=Цена/Константа.КоэфДеноминации;
    Сообщить("Цена" +СокрЛП(Цена)       +СокрЛП(СпрЦеныТМЦ.Цена));

  КонецЕсли;
  СпрЦеныТМЦ.Записать();
КонецЦикла;  
ПРедупреждение("Обработка завершена");
КонецПроцедуры
заносит не "цена/константа", а саму константу, т.е. 10.000 во все строки
9 Ёпрст
 
09.08.16
16:15
(8) вот тут брэд, не пит

Цена = СпрЦеныТМЦ.ТекущийЭлемент();
СпрЦеныТМЦ.Цена=Цена/Константа.КоэфДеноминации;
10 Standart
 
09.08.16
16:19
Ёпрст- дзякуй!!!
11 Зая Бусечка
 
09.08.16
16:23
(10) Вот так его ещё никто не посылал на моей памяти....
12 Это_mike
 
09.08.16
16:31
(11) "Эй, подстрахуй!"©
13 Standart
 
09.08.16
16:34
Харе издеваться над бедным студентом :( я еще только учусь...  Если в лом помочь, то и не стоит "обсирать". Для этого есть форум "ПОРЖАТЬ"
14 HawkEye
 
09.08.16
17:02
(8) у тебя цена - не периодический элемент?
15 Garykom
 
гуру
09.08.16
17:11
(13) Выгружаешь в Ёксель... правишь цены формулой... загружаешь назад... профит!
16 Standart
 
10.08.16
14:47
Процедура Выполнить()
     перем цена;
    СпрЦеныТМЦ=СоздатьОбъект("Справочник.ЦеныТМЦ");  
    СпрЦеныТМЦ.ВыбратьЭлементы();
    Пока СпрЦеныТМЦ.ПолучитьЭлемент()=1 цикл
                цена= СпрЦеныТМЦ.ТекущийЭлемент().цена;
            //СпрЦеныТМЦ.ТекущийЭлемент().цена=Цена/Константа.КоэфДеноминации;    
            цена1=Цена/Константа.КоэфДеноминации;
            СпрЦеныТМЦ.УстановитьАтрибут("Цена",Цена1);    
             СпрЦеныТМЦ.Записать();
             Сообщить( +СокрЛП(цена) +"-" +СокрЛП(СпрЦеныТМЦ.ТекущийЭлемент().Цена));
    КонецЦикла;       
    ПРедупреждение("Обработка завершена");
КонецПроцедуры
вот, дописал, отработала на 100% А как сейчас сделать, чтобы Цена(число) дополнительно записалась в Наименование(строка)?
17 Numerus Mikhail
 
10.08.16
14:49
Наименование = Наименование + Цена;
18 Ёпрст
 
10.08.16
14:59
(16)

//цена= СпрЦеныТМЦ.ТекущийЭлемент().цена;
Цена= СпрЦеныТМЦ.Цена;

СпрЦеныТМЦ.Наименование = СокрЛП(СпрЦеныТМЦ.Наименование)+" "+Цена;
19 Standart
 
10.08.16
15:06
Ёпрст- Спасибо. А что делать с ошибкой? Изменено Наименование! Может быть нарушена последовательность выборки!
20 Garykom
 
гуру
10.08.16
15:09
(19) ПорядокКодов
21 Garykom
 
гуру
10.08.16
15:10
(20)+ Но правильнее выборка в ТЗ и обработка этой ТЗ уже пофиг на последовательность тогда
22 Standart
 
10.08.16
17:02
а вот так я сделал Наименование
Процедура Выполнить()
    
     перем цена;
    СпрЦеныТМЦ=СоздатьОбъект("Справочник.ЦеныТМЦ");
    СпрЦеныТМЦ.ПорядокКодов();
СпрЦеныТМЦ.ВыбратьЭлементы();
Пока СпрценыТМЦ.ПолучитьЭлемент()=1 Цикл
    Наименование= СпрЦеныТМЦ.ТекущийЭлемент().цена;
СпрценыТМЦ.Наименование=Наименование;
СпрценыТМЦ.Записать();
КонецЦикла;
    СпрЦеныТМЦ = СоздатьОбъект("Справочник.ЦеныТМЦ");
СпрЦеныТМЦ = СоздатьОбъект("Справочник.ЦеныТМЦ");
СпрЦеныТМЦ.ВыбратьЭлементы();
Пока СпрЦеныТМЦ.ПолучитьЭлемент() = 1
Цикл
Если СпрЦеныТМЦ.НайтиЭлемент(СпрЦеныТМЦ.ТекущийЭлемент()) = 1
Тогда
СпрЦеныТМЦ.Наименование = Наименование+цена;
КонецЕслИ;
КонецЦикла;    
    ПРедупреждение("Обработка завершена");
КонецПроцедуры
отработала на ура!!!
23 Garykom
 
гуру
10.08.16
17:06
(22) Открой для себя http://catalog.mista.ru/public/15540/
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.