Имя: Пароль:
1C
1C 7.7
v7: Утренний тупняк
0 MixanM
 
20.12.11
05:17
Всех с ДУ, напал утренний тупняк или еще что, не могу поменять цену у номенклатуры:
Цена = Число(Цена);
       РеквЦена = "Цена";
       Если СпрЦены.НайтиПоРеквизиту("ТипЦен",НайденыйТипЦен, 0) = 0 Тогда        
           ...//тут полностью рабочий код, который работает при создании новой цены
       Иначе
           ТекущийЭлементЦены = СпрЦены.ТекущийЭлемент();
           Если ТекущийЭлементЦены.Цена <> 0    Тогда
               Сообщить("Меняем только цену");
               ТекущийЭлементЦены.Цена = Цена; //а тут должен менять цену, если таковой тип цены имеется, например "Розничные"
       Попытка
           СпрЦены.ИспользоватьДату(РабочаяДата());
           СпрЦены.Записать();
           Сообщить("Изменена Цена  :"+Цена);
       Исключение
           Предупреждение( "Не выполнено сохранение   Цены: " + ОписаниеОшибки() +
           РазделительСтрок + "Элемент не сохранен!", 60);
           Возврат;
       КонецПопытки;
       КонецЕсли;
   КонецЕсли;

ну и вообщем не меняет он цену
2 mih_io
 
20.12.11
05:23
может надо использовать метод Записть не к объекту СпрЦены, а ТекущийЭлементЦены.
3 Начинающий Программер
 
20.12.11
05:25
ТекущийЭлементЦены.Записать() ?
4 Начинающий Программер
 
20.12.11
05:25
ТекущийЭлементЦены.Записать()

вместо

СпрЦены.Записать()
5 Rie
 
20.12.11
05:30
(0)
Не надо никаких ТекущийЭлементЦены.
спрЦены.Цена = Цена;
спрЦены.Записать();
6 MixanM
 
20.12.11
05:33
(5) а так и было, так же не работало
7 VladZ
 
20.12.11
05:36
(0) Зачем тебе вообще "ТекущийЭлементЦены"? Сам себя путаешь...
Ну и не забывай, что цена - периодический реквизит.
8 Rie
 
20.12.11
05:37
(6) "Не работало" - это как? Выдавало ли сообщение какое-то?
Присутствовало ли при этом

спрЦены.ИспользоватьДату(РабочаяДата);

или

спрЦены.Цена.Установить(РабочаяДата(),Цена);
9 MixanM
 
20.12.11
05:39
(8) Код отрабатывал нормально, т.е. менял все реквизииты, и даже в доп подчиненных справочниках, аот цену в СпрЦены не меняет сЦ%ук
10 VladZ
 
20.12.11
05:39
Должно быть так:

Если СпрЦены.Цена.Получить(РабочаяДата()) <> 0    Тогда
               Сообщить("Меняем только цену");
               СпрЦены.Цена.Установить(РабочаяДата(),Цена)
               
Иначе
....
11 MixanM
 
20.12.11
05:41
(8) Спасибо, подставил : спрЦены.Цена.Установить(РабочаяДата(),Цена); и заробило
12 MixanM
 
20.12.11
05:41
(10) Немножюко в другом месте поставил, пеед началом условия, и заработало
13 MixanM
 
20.12.11
05:42
И вопрос до кучи, в каком месте в эске ТиС, хранятся остатки? ))
14 ДенисЧ
 
20.12.11
05:43
(13) нигде...
15 Rie
 
20.12.11
05:44
(13) Помедитируй над словом "регистры".
16 MixanM
 
20.12.11
05:45
(15) Вы правы =)
17 MixanM
 
20.12.11
05:46
Ветку надо закрыть
18 GROOVY
 
модератор
20.12.11
05:48
Ветку закрывают только если она нарушает правила или за**ла модератора :)
20 GROOVY
 
20.12.11
05:52
(19) Так тебя забанят...
21 MixanM
 
20.12.11
06:12
(20) Да кто меня заба
22 skunk
 
20.12.11
06:13
ну хочешь я забаню
23 MixanM
 
20.12.11
06:19
(22) Так моя, вышенаписанная, фраза, как раз указывает на то - что , в момент написания сообщения, меня якобы за
24 Rie
 
модератор
20.12.11
06:19
(23) Уже не "якобы".
25 GROOVY
 
модератор
20.12.11
06:21
(24) Мало ты его... Я часов на 12 забанил бы.
26 VladZ
 
20.12.11
06:27
гы-гы-гы... Модераторы глумятся..  :)
27 MixanM
 
20.12.11
06:40
Злые вы... ВООбщем если по сабжу. У регистров есть метод "ВыгрузитьИтоги" - он работает с только с ТЗ, т.е. для того что бы мне загрузить эту ТХ, скажем в другую базу, никакого штатного метода загрузи из ТЗ в Регистры нет, получается, в цикле нужно пребирать склад, номенклатуру, и остаток, и сохранять в регистр текущей базы ?
28 skunk
 
20.12.11
06:42
в регистры ты можешь внести информацию только в модуле проведения документа
29 Rie
 
20.12.11
06:43
(27) Не взлетит. Писать в регистр может _только_ документ и _только_ при его проведении.
Поэтому загружай свою табличку в табличную часть документа - и проводи его. А при проведении - перебирай циклом строки и создавай движения регистра.
30 MixanM
 
20.12.11
06:48
(29) т.е. для сохранения регистра, нужен документ основания, кот будет проведен и в следствии сохранит регистр, верно? тогда можно сделать через  банальный документ прихода, просто для каждого склада создать новый , забить в него остатки в цикле, и провести
31 skunk
 
20.12.11
06:48
можно и так
32 Rie
 
20.12.11
06:50
(30) Можно и через приход.
Но в типовых случаются и специальные документы для ввода остатков.
Выбирать ли приход или документ ввода остатков - зависит от задачи.
33 VladZ
 
20.12.11
06:52
(30) Ты это... Воздержись от "изобретения велосипеда". Посмотри, как сделано в стандартных конфах.
34 Rie
 
20.12.11
06:54
(33) Его задача - неизвестна.
Может, эта табличка - как раз накладная, выгружаемая их "соседней" базы.
35 MixanM
 
20.12.11
06:57
(34) на самом деле задача "проста", загрузить остатки в новую базу-копию.
36 MixanM
 
20.12.11
06:59
с одним усложнением, натягиваь остатки придется не по коду элемента, а по штрих коду, кот. находится в подчиненном справочнике
37 Rie
 
20.12.11
07:02
(35) Тогда, IMHO, разумно будет сделать (или модифицировать существующий) документ ввода остатков.
38 MixanM
 
20.12.11
07:06
(37) может быть. Просто нужно всего 1 раз сделать загрузку остатков. Есть идея даже сделать это путем ревизии, т.е берется товар, сканируется по Штрих коду, и собственно сохраняется, этим убьем двух зайцев, и сохраним текущий товар на склад по ШК, и проведем инвентаризацию магазинов
39 KishMish
 
20.12.11
08:10
сначала использовать дату, потом установка цены, потом записать