Имя: Пароль:
1C
1C 7.7
v7: Помогите новичку с периодическими реквизитами
0 Nutsa12
 
30.10.12
06:59
Есть Справочник Номенклатура, там есть периодический реквизит СтавкаНДС, сделанный перечислением. Есть документ ПриходнаяНакладная. Как сделать чтобы в документе менялась ставкаНДС, но при проведении документа, СтавкаНДС становилась как в справочнике.
1 Wobland
 
30.10.12
07:00
если юзер хочет негодную ставку НДС в документе, пускай ставит. это его головная боль
2 VladZ
 
30.10.12
07:01
(0) Сделать можно. Но не нужно.
3 Nutsa12
 
30.10.12
07:03
Это учебная задача...
4 Андрюха
 
30.10.12
07:05
(0)
Процедура ПриЗаписи()

   ПерОб = СоздатьОбъект("Периодический");
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       Если ПустоеЗначение(Номенклатура) = 0 Тогда
           ПерОб.ИспользоватьОбъект("СтавкаНДС", Номенклатура);
           ПерОб.ДатаЗнач = ДатаДок;
           ПерОб.Значение = СтавкаНДС;
           ПерОб.Записать();
       КонецЕсли;
   КонецЦикла;


КонецПроцедуры
5 Андрюха
 
30.10.12
07:06
(4) + А, блин, прогнал... Тебе же надо "При проведении"
6 VladZ
 
30.10.12
07:07
(3) Задача первоначально поставленно некорректно. Тогда уж лучше закрыть доступ на изменение реквизита "СтавкаНДС" в документе. Это первый момент. Второй момент: обращаться лишний раз при проведении к периодическим реквизитам не есть хорошо.
7 Wobland
 
30.10.12
07:08
а не нужно ничего волшебным образом подменять ;)
кто такое придумал?
максимум, что тут можно сделать, даже при учёте (3) - материться при проведении
8 Wobland
 
30.10.12
07:09
кстати, по состоянию на 20121030070800мск фото не обнаружено
9 Рэйв
 
30.10.12
07:10
(0)при проведении

СтавкаНДСкакВСправочнике=Номенклатура.СтавкаНДС.Получить(ДатаДок)
10 Nutsa12
 
30.10.12
07:11
(8)Без фото никак?)
11 Андрюха
 
30.10.12
07:11
(0) При проведении изменить ставку в документе не получится, т.к. не запишешь документ - он будет открыт в этот момент.
12 Wobland
 
30.10.12
07:11
(10) никак. Рэйв сейчас всё спрячет обратно ;)
13 Godofsin
 
30.10.12
07:12
(10) против закона не попрешь, да....
14 Рэйв
 
30.10.12
07:12
+(9)Это в переменную присвоение.А в документе пусть стоит как есть.
15 Wobland
 
30.10.12
07:12
(11) а я умею проводить документы без открытия..
16 Андрюха
 
30.10.12
07:13
(15) А надо не проводить, а записывать
17 Рэйв
 
30.10.12
07:13
(12)Ах да!  Точно!

(0)Срочно моргай когда смотришь на посты (9)и (14)
:-)
18 Wobland
 
30.10.12
07:13
(16) какие-то приколы семёрки? я не в курсе
19 VladZ
 
30.10.12
07:13
(10) Посмотрел личку... Натали? Мое любимое имя! :)
20 Wobland
 
30.10.12
07:14
(19) ставлю на голубые глаза
21 Nutsa12
 
30.10.12
07:15
(20) не угадал
22 Андрюха
 
30.10.12
07:15
(18) Можно и так сказать. Если только извратиться с таймером FormEx, чтобы манипулировать документом скажем через 300 миллисек после закрытия...
23 Wobland
 
30.10.12
07:16
(21) я требую сатисф.. тфу, подтверждения!
24 Nutsa12
 
30.10.12
07:17
Вечером) На работе фото нет
25 Wobland
 
30.10.12
07:19
(24) а у нас на работе СП нет. но мы берём и делаем ;)
26 VladZ
 
30.10.12
07:19
(21) Или зеленые. Или карие.
27 Wobland
 
30.10.12
07:19
(26) мне тогда остаются чёрные, да?
28 Рэйв
 
30.10.12
07:20
(27)Хорошо, что выбор цвета небогатый:-)  Можно быстро угадать.
29 Рэйв
 
30.10.12
07:20
(27)Еще есть желтые:-)
30 VladZ
 
30.10.12
07:21
31 Nutsa12
 
30.10.12
07:22
(26) карие
Вы лучше с проблемой моей помогите... А то не работает как надо
32 VladZ
 
30.10.12
07:23
(31) Ура! Мне приз! :)
33 Wobland
 
30.10.12
07:23
(31) а чего помогать? всё уже сказано. что ты там у себя наделала, нам своими серыми глазами не видно
34 VladZ
 
30.10.12
07:24
Значит так, Натали... Не нужно этого делать. Поверь мне. :)
35 Wobland
 
30.10.12
07:24
(34) да, не нужно! отдай приз мне, я больше всех участвовал.
а вообще, я по этому поводу в самом начале сказал
36 Wobland
 
30.10.12
07:26
вот, кстати, пост 28
v8: УФ. Оформление списка
тоже врала, что нету ;)
37 Андрюха
 
30.10.12
07:30
удалось раздобыть фотку топикстартера :-)

http://fastpic.ru/view/45/2012/1030/ade9cf9acbd2d30a6b4324fc378b1236.jpg.html
38 Wobland
 
30.10.12
07:30
(37) она слева?
39 Андрюха
 
30.10.12
07:31
(38) Пишет, что с коричневыми глазами, Значит не с зелеными
40 VladZ
 
30.10.12
07:34
(37) Ну ты маг и чародей! :)
А мою фотку можешь нарыть?
41 Wobland
 
30.10.12
07:35
(40) боюсь, как бы текущая не была самой выгодной ;)
42 VladZ
 
30.10.12
07:36
(41) Ну дык! На мисте - самую лучшую выставил! :)
43 Андрюха
 
30.10.12
07:39
(40) Не, твою не могу (((
44 osa1C
 
30.10.12
07:40
(37) + 100)
45 Nutsa12
 
30.10.12
07:46
(4) При проведении меняется ставкаНДС в справочнике как в документе, а должно быть наоборот
46 1Сергей
 
30.10.12
07:47
(45) см (9)
47 Wobland
 
30.10.12
07:48
(45) ты меняй в документе, а не в справочнике
48 Nutsa12
 
30.10.12
07:56
В документе меняю:
Это пишу в форме документа

Процедура ПриЗаписи()

   ПерОб = СоздатьОбъект("Периодический");
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       Если ПустоеЗначение(Товар) = 0 Тогда
           ПерОб.ИспользоватьОбъект("СтавкаНДС", Товар);
           ПерОб.ДатаЗнач = ДатаДок;
           ПерОб.Значение = СтавкаНДС;
           ПерОб.Записать();
       КонецЕсли;
   КонецЦикла;


КонецПроцедуры
49 1Сергей
 
30.10.12
07:58
(48) этот код меняет значение в справочнике. Зачем ты его туда вставила?
50 Wobland
 
30.10.12
07:58
>СоздатьОбъект("Периодический")
на этом я сливаюсь. вспоминая Рэйва и (9)
51 Wobland
 
30.10.12
07:59
(48) в документе меняешь. находясь в документе, меняешь у справочника
52 Nutsa12
 
30.10.12
08:00
Я понимаю что это меняет в справочнике
53 Wobland
 
30.10.12
08:01
(52) теперь тебе осталось понять, что же ты хочешь. давай, старайся, мы болеем за тебя! ;)
54 1Сергей
 
30.10.12
08:01
(52) тогда объясни чего тебе надо более понятным языком
55 Рэйв
 
30.10.12
08:02
(52)Прочитай внимательно (9) и (14)

Переменную со ставкой получай в ОбработкаПроведения и пересчитывай по ней суммы  движений
56 Nutsa12
 
30.10.12
08:05
(53) Спасибо))
Мне надо чтобы при проведении, менялось СтавкаНДС как в справочнике, не смотря на то что пользователь мог выбрать другое значение
57 Nutsa12
 
30.10.12
08:05
В модуль документа:
СтавкаНДСкакВСправочнике=Товар.СтавкаНДС.Получить(ДатаДок);
58 Wobland
 
30.10.12
08:06
(56) спроси у Рэйва, он в курсе. третий раз говорить, что этого тебе не надо, я уже не буду
59 Nutsa12
 
30.10.12
08:06
(14) не могу понять(((
60 Wobland
 
30.10.12
08:06
(57) СтавкаНДСкакВСправочнике
вот тут должен быть реквизит ТЧ
61 Андрюха
 
30.10.12
08:06
(57) Да, в процедуру ПриПроведении. Там сделай выборку строк, как в (48)
62 VladZ
 
30.10.12
08:08
(0) А сумму НДС тоже будешь пересчитывать? Или оставишь, как есть?
63 Андрюха
 
30.10.12
08:08
Процедура ПриПроведении()

   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       Если ПустоеЗначение(Товар) = 0 Тогда
           СтавкаНДС = Номенклатура.СтавкаНДС.Получить(ДатаДок);
       КонецЕсли;
   КонецЦикла;

КонецПроцедуры
64 Рэйв
 
30.10.12
08:08
(57)  чтобы было проще тебе сделай в колонке СтавкаНДС  в таб части так

СтавкаНДС= Номенклатура.СтавкаНДС;

+ и пересчитай суммы.

Тогда чтобы там не выбрал пользователь ставка всегжа будет какая надо.


А так как хочешь сделать ты- криво. потому что получится, что в документе у тебя одни суммы, а в проводках другие.
65 Рэйв
 
30.10.12
08:09
*в колонке СтавкаНДС  ПриИзменении()
66 VladZ
 
30.10.12
08:10
А что делать, если нужно перепровести документ в закрытом периоде? (прошлый квартал) Бухгалтер с ума не сойдет?
67 Nutsa12
 
30.10.12
08:10
Вроде получилось)))
Спасибо всем!
(66) я пока этого не понимаю
68 Андрюха
 
30.10.12
08:10
(63)+ Тьфу ты, хреновый из меня подсказчик, "Номенклатура" надо поменять на "Товар" конечно же
69 VladZ
 
30.10.12
08:11
(67) Однако! Тогда запасись вазелином, затычками для ушей и шапочкой из фольги (на всякий случай).
70 Nutsa12
 
30.10.12
08:13
Еще маленький вопросик))
Из модуля документа можно вызвать процедуру которая на форме?
71 1Сергей
 
30.10.12
08:13
(70) нельзя
72 VladZ
 
30.10.12
08:13
(70) Нет.
73 Wobland
 
30.10.12
08:14
(70) из модуля документа в общем случае нельзя взывать к интерфесным вещам. но это для восьмёрки
74 Nutsa12
 
30.10.12
08:14
на форме идет перерасчет ндс в зависимости от значения. Но при проведении ставка меняется и перерасчет не происходит. Получается надо снова добавлять перерасчет?
75 Wobland
 
30.10.12
08:14
(74) да
76 Рэйв
 
30.10.12
08:14
(70)Можно.  Если получишь форму и процедура Экспортная:-)

Но тебе это не надо.
77 VladZ
 
30.10.12
08:15
(74) Перерасчет нужно вынести в глобальник и оттуда вызывать.
78 Андрюха
 
30.10.12
08:16
В стандартной торговле/бухии есть глобальная процедура, ее надо вызывать при изменении реквизита в цикле перевора строк:
ПересчетТабличнойЧасти("СтавкаНДС");
79 VladZ
 
30.10.12
08:18
Еще такой момент: можно печать непроведенный документ?
80 Nutsa12
 
30.10.12
08:18
(78) нет такой процедуры у меня
81 Nutsa12
 
30.10.12
08:18
(77) глобальник это что?)
82 1Сергей
 
30.10.12
08:19
(81) без фотки не скажем
83 1Сергей
 
30.10.12
08:19
хотя уже выложили, да...
84 Nutsa12
 
30.10.12
08:20
все ладно) сделала по другому)
85 Андрюха
 
30.10.12
08:20
(80) Ты посмотри как она называется, в свойствах колонки Количество например табличной части документа
86 Nutsa12
 
30.10.12
08:21
Еще раз спасибо всем) Еще приду ;)
87 VladZ
 
30.10.12
08:23
(86) Ответь на (79).
Если можно печатать непроведенный документ - может возникнуть ситуация, когда на печ.форме одни данные, а по факту в программе - другие.
88 Wobland
 
30.10.12
08:25
(87) распечатать непроведённый документ, добавить пару строк в ТЧ, потом провести и снова распечатать. данные будут разные. и хотелка автора тут ни причём
89 VladZ
 
30.10.12
08:27
(88) Про добавить понятно... Тут речь о другом. Итоговая сумма не изменится. А вот сумма НДС может скакать.
90 Wobland
 
30.10.12
08:30
(89) ну дык на то и проведённость документа - документ принимает участие в телодвижениях базы. а непроведённый - это ваще не показатель для состояния БД. или я опять не догоняю?
91 VladZ
 
30.10.12
08:34
(90) Все верно.
92 Wobland
 
30.10.12
08:36
(91) всё равно, я не понял, что ты имел в виду в (87), ну да ладно, не будем об этом
93 VladZ
 
30.10.12
08:45
(92) Я имел в виду, что на это нужно обратить внимание.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.