Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Валюта управленческого учета


Автор: DzSoft 2.10.2008, 18:20
Всем привет.

Возникла проблема.
Платформа 77 редакция ТиС.

Проблема:
Не могу сменить "Валюту управленческого учета"

Постояно пишет:
Константа "ВалютаУпрУчёта" не может быть изменена в ручную.


А как тогда ещё ?

Автор: Zero 2.10.2008, 20:06
А-хахаха.... smile Ты подумай что будет если ты её сменишь, в случае перепровдения какого-либо из документов, где она уже использовалась. Все движения пересчитаются в соответствии с новым значением валюты и в отчётах будет неразбериха.
На уровне конфигурации спецально установлен запрет после ввода в базу хотябы одного документа, чтобы такие пользователи как ты несмогли её сменить. smile 

Автор: DzSoft 2.10.2008, 20:30
Ну ты меня обрадовал  smile 

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

Ты только подскажи, как его снять и сделать мне вместо "у.е." простой Российский "Рубль"

Автор: DzSoft 2.10.2008, 21:34
я розобрался. Это мне надо удалить все документы.... Вот это запара.

А по проще никак нельзя??? Без удалений доков.

Добавлено через 10 минут и 42 секунды
Насколько я понял. 
Валюты управленческого учета - это по которым ведётся база.
Например нуменклатура, когда я ввожу позицию, записываю и начинаю вводить цены у меня должна идти "Валюта управленческого учета" в данный момент "Российский рубль".

Так? или Я не прав?

А в нуменклатуре у меня почему-то остались у.е.

Хотя и Бух. и Управленчиский учёт ведётся в рублях.


Как мне изменить у.е. на рубли при забивании в нуменклатуру.

Короче я отказываюсь от у.е. в 1С ТиС

Автор: AkelaSQL 3.10.2008, 08:53
1. Создаешь внешнюю обработку в которой есть 1 процедура:

Процедура ПриОткрытии()
    
    Константа.ВалютаУпрУчета = глРубли;

КонецПроцедуры



2. Открываешь эту обработку.
3. Закрываешь эту обработку.
4. Перепроводишь все документы.

Автор: DzSoft 3.10.2008, 14:19
Я новерное, что-то не правельно понял.

Но я попытался сделать и выдало вот это

Значение не представляет агрегатный объект (ВалютаУпрУчета)

Автор: AkelaSQL 3.10.2008, 14:55
Блин, ну посмотри как у тебя правильно эта константа называется...

Автор: DzSoft 3.10.2008, 15:51
Постояно пишет:
Константа "ВалютаУпрУчёта" не может быть изменена в ручную.

Вот как написал, так и мне выдаётся и в Конфигураторе она также написана smile 

Автор: Zero 5.10.2008, 13:24
Блин, ты всё не как не успокоишся.

Ненужно менять валюту упр. учёта на рубли. Она изходя из стандартов 1с должна быть в долларах, а валюта бухгалтерского учёта в рублях.

Соответственно когда вытаскиваешь данные из регистров и тебя интересует сумма в рублях, вытаскивай по ресурсу "СуммаРуб." и всё. 
Если фирма не работает с долларами вообще, тогда вообще забудь про валюту управленческого учёта. Она тебе не нужна. Пользуйся везде валютой бухгалтерского учёта.

Автор: Itsys 5.10.2008, 21:36
Zero, ГЫ ты забыл, что Анализ продаж показывается только в валюте управленческого учета....

Автор: DzSoft 6.10.2008, 07:49
Zero, ты совершенно прав. С долларами, вообще "дело" не имеет отношения. Только рубли. 

И поскольку у Нас Русская страна и везде выставляются в рублях счета, а не в долларах. Тогда зачем мне постоянно подсчитывать сумму, хотя это может делать 1С (себестоимость).
И вбивать это в базу.

Возьмём прайс-лист. При формировании опять же доллары, а не рубли. Везде доллары.
При звонке в офис клиен хочет услышать цену в рублях, а не в доллорах (слышав, что цена в у.е. они или переспрашивают в рублях или теряются). На то, что бы менеджер ответил быстро и оперативно нужны рубли.

Всё нафиг ))))) Бойкот им.

Хочу 1С без у.е. и не заботиться о конвертации рубля к доллору и на оборот. smile 

Автор: AkelaSQL 6.10.2008, 08:31
В глобальном модуле есть процедура. Изменив её по предложенному примеру, ты сможешь провернуть эту операцию авторизовавшись под Администратором.

Процедура ПриЗаписиКонстанты(ИмяКонст,ЗначКонст) 
    
    // Номер релиза менять вручную нельзя
    Если ИмяКонст = "НомерРелиза" Тогда 
        Если глПользователь.Наименование = "Администратор" Тогда
        Иначе
            Предупреждение("Константа ""НомерРелиза"" является служебной и
            |не может быть изменена вручную.", 60);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    // Их менять вручную нельзя
    Если (ИмяКонст="ВалютаБухУчета")
    ИЛИ  (ИмяКонст="ВалютаУпрУчета") 
    ИЛИ  (ИмяКонст="ПрефиксИБ")
    Тогда 
        Если глПользователь.Наименование = "Администратор" Тогда
        Иначе
            Предупреждение("Константа """+СокрЛП(ИмяКонст)+""" не может быть изменена вручную.", 60);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;     
    
КонецПроцедуры

Автор: DzSoft 6.10.2008, 21:35
Помогло. 
Валюта сменилась. Ура

Спасибо!

Но почему только в константе. А почему учёт продолжает (нуменклатура) идти в у.е. ?????

Автор: Itsys 6.10.2008, 21:44
Потому что надо перепровести все документы  smile 

Автор: DzSoft 7.10.2008, 00:30
Чисто логически не вижу смысла.
может я, что-то не допонимаю, но документы-то тут причём?

Да и к тому же база без документов smile

Доки я потёр нафиг.

Справочник Нуменклатуры.... Там ведётся учёт в у.е., а надо-то в рублях. smile 



Байкот у.е. и копейкам smile 

Автор: Itsys 7.10.2008, 12:05
Поправь валюту еще и в настройках пользователя, а у уже существующей валюты поправить валюту можно только обработкой.... либо удаляй всю номенклатуру и вводи заново.

Автор: AkelaSQL 8.10.2008, 08:48
В справочнике никакого учета не ведется, что за байду Вы гоните. Выкладывай конкретное описание проблемы!

Автор: Itsys 8.10.2008, 15:54
AkelaSQL, Валюта используется в справочнике цен  smile, но, похоже, он совсем не может корректно и подробно объяснить чего ему надо.....

Автор: AkelaSQL 8.10.2008, 17:22
Вот если сформулирует свой вопрос, 90% сам на него сразу и ответит...

Автор: DzSoft 9.10.2008, 12:25
Учёт нуменклатуры ведётся в у.е., а нужно в рублях. Я думал, что сменю всю политику учёта и сразу всё образумиться. Ан-нет.

Вся валюта идёт в рублях, а нуменклатура идёт в у.е.
Цитата

Поправь валюту еще и в настройках пользователя, а у уже существующей валюты поправить валюту можно только обработкой

Напомни мне пожалуйста где это сделать.
Цитата

либо удаляй всю номенклатуру и вводи заново.



У меня там более 5000 позиций. Издеваешься ?

Я так понимаю, что в справочнике нуменклатуры идёт отдельный учёт.
Хотя с другой стороны, такого не может быть. Тогда бы можно было выбирать какая валюта тебе нужна, а она там зафиксирована.


Хотя я сделал в отдельной базе. Толку никакого. В нуменклатуре, как велся учёт в у.е., так и остался вести учёт в у.е., а нужны рубли.

Автор: Itsys 9.10.2008, 13:05
Что значит
Цитата(DzSoft @  9.10.2008,  12:25 Найти цитируемый пост)
В нуменклатуре, как велся учёт в у.е., так и остался вести учёт в у.е


Где ты это видишь? В каком отчете?

Автор: AkelaSQL 9.10.2008, 15:21
Походу парняга нас надул, что у него ТиС.
Или он сейчас нам про цены в прайсе заливает?
Или у меня лыжи не едут...

Автор: DzSoft 10.10.2008, 15:01
Ребят. Смотрите.

В нуменклатурных позициях есть кнопка "Цена"
Вот когда начинаешь забивать цену. Учёт ведётся в у.е.
Ну не нужно этого, надо в рублях.

Я не ожидал, что в нуменклатуре при смене константы "Учётной валюты" с у.е. на рубли не смениться учёт в нуменклатуре.

Автор: Itsys 10.10.2008, 20:13
Валюта в цены номенклатуры берется из справочника "Типы цен", поменяй там.

Для смены валюты в существующих позициях:
Код

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

Автор: DzSoft 10.10.2008, 20:29
Цитата

"Типы цен"

Не понял???

Я не нашёл у себя такого. Может по другому называется????

Скажи поподробнее, как и где.

Автор: Itsys 10.10.2008, 20:34
Ну ты чего, в меню справочники, не можешь найти справочник "Типы цен" smile ?

Автор: DzSoft 10.10.2008, 20:41
 smile Ты имеешь ввиду дополнить модуль ????

Автор: DzSoft 11.10.2008, 18:32
На последок могу сказать, что я как всегда лезу сночало с трудной стороны.


Ребят всем огромныое спасибо.
Разобрался. Всё поменял. Всем респек.


Единственный мину.

Мне теперь всю нуменклатуру пересчитывать с у.е. на рубли. smile 


Если кто знает, как поще это сделать пишите.

Автор: Zero 11.10.2008, 18:36
Цитата(Itsys @  5.10.2008,  21:36 Найти цитируемый пост)
Zero, ГЫ ты забыл, что Анализ продаж показывается только в валюте управленческого учета

Вообщето анализ продаж формируется на основе регистра "продажи", если что то в нём нет понятия валюта, там просто себястоимость товара, продажная стоимость и количество и соответственно на основе этих параметров определяется прибыль и прочее. А он в свою очередь заполняется на основе документов прихода и расхода товара, и в той валюте в которой это делает, так он и будет заполнятся. smile 

Цитата(DzSoft @  6.10.2008,  07:49 Найти цитируемый пост)
Тогда зачем мне постоянно подсчитывать сумму

Где ты видишь чтобы я писал, что её постоянно нужно подсчитывать? Она при проведении по регистрам сама попадает в нужный ресурс и её нужно будет только вытаскивать от туда smile 
Цитата(DzSoft @  6.10.2008,  21:35 Найти цитируемый пост)
Помогло. 
Валюта сменилась. Ура

Спасибо!
Жди теперь проблем.... smile 
Цитата(DzSoft @  6.10.2008,  21:35 Найти цитируемый пост)
А почему учёт продолжает (нуменклатура) идти в у.е. ?????

1. учёт ведётся в регистрах либо документах, а в справочниках только информация о чём либо.
2. Для справочника "Номенклатура" есть подчинённый справочник "Цены" в качестве одного из реквизитов которого используется реквизит "Валюта" который соответствует типу "Справочник.ТипыЦен". Дак вот в справочнике "типы цен" при создании нового типа цен "валюта" устанавливается сразу и впроцессе работы недолжна меняться изходя из логичиских соображений.
Для того чтобы изменить валюту в спраочнике "типы цен", нужно удалить из справочника "цены" подчинённого справочнику "номенклатура" все элементы которые используют элемент справочника "типы цен" у которого ты хочешь изменить валюту.
Теперь советую тебе создать новые элементы в справочнике "типы цен" с валютой "руб." и ещё в настройках всех пользователей в качестве основной валюты взаиморасчётов тоже поставить "руб." и далее везде использовать новые типы цен.
Если исправишь старые элементы с помощью обработки с доларов на рубли -> в 1с будет полная белибирда.

Автор: Itsys 11.10.2008, 19:32
Цитата(DzSoft @  11.10.2008,  18:32 Найти цитируемый пост)
Мне теперь всю нуменклатуру пересчитывать с у.е. на рубли.  


Если кто знает, как поще это сделать пишите

Можно, если поменять на сегодняшний день, то проще, если всю историю посложнее, тебе чего надо?

Автор: DzSoft 13.10.2008, 10:16
Zero, Спасибо. Я как раз так сделал и всё тип топом )))) Теперь только пересчитывать все позиции.

Цитата(Itsys @ 11.10.2008,  19:32)

Можно, если поменять на сегодняшний день, то проще, если всю историю посложнее, тебе чего надо?


Смотри. 
Например. 

Когда меняеш валюту в счёте. У тебя вылазиет окошко пересчитать цены или нет.
Ты говоришь да и у тебя всё меняется.

Вот мне надо примерно также когда поменял Волюту учёта в нуменклатуре с у.е. на рубли.

У меня большое кол-во позиция устану пересчитывать. там пересчитать всё удасться не менее 2-3 дней. А столько времени нет.

Автор: AkelaSQL 13.10.2008, 13:19
учиться тебе сначала надо, а потом ставить опыты на людях...

Автор: Itsys 13.10.2008, 13:50
На текущий момент, тогда обработка будет выглядеть так:
Код

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

Автор: Zero 13.10.2008, 22:18
Цитата(AkelaSQL @  13.10.2008,  13:19 Найти цитируемый пост)
учиться тебе сначала надо, а потом ставить опыты на людях... 

Не надо было давать дурные советы, если заранее понятно что ни к чему хорошему это не приведёт. Особенно как видно было в данном случае.

Автор: AkelaSQL 14.10.2008, 09:15
Даннаяя проблема решается за 15 минут и ничего страшного в этом нет. В случае наличия "прямых рук" смена валюты упр. учета и валюты в прайсовых ценах с полным пересчетом это "как два байта переслать". Нужно просто понимать, что ты хочешь. В данном случае "пациент" даже толково объяснить этого не мог... Даже при наличии большого кол-ва документов, все можно сделать без их перепроведения, если использовать, например 1С++, для непосредственного пересчета сумм в регистрах.

Автор: Zero 15.10.2008, 22:00
Цитата(AkelaSQL @  14.10.2008,  09:15 Найти цитируемый пост)
Даннаяя проблема решается за 15 минут

За 15 минут проблемы решаются как правило языком. А когда начинаешь что-то делать на практике, то иногда возникают дополнительные проблемы. Поэтому не всегда всё просто как кажется.

Автор: AkelaSQL 16.10.2008, 08:44
Не знаю как Вы Zero, но я решать проблемы языком не привык...

Автор: Zero 17.10.2008, 22:48
Цитата(AkelaSQL @  16.10.2008,  08:44 Найти цитируемый пост)
Не знаю как Вы Zero, но я решать проблемы языком не привык... 

Цитата(AkelaSQL @  14.10.2008,  09:15 Найти цитируемый пост)
Даннаяя проблема решается за 15 минут

Для решения вопроса, нужно:
1. сделать бекап базы;
2. сделать копию базы для тестирования;
3. написать обработку по изменению значений элементов справочника;
4. запустить её на копии базы и проверить правильность результатов её работы;
5. запустить обработку на рабочей базе.

PS: Хотя тут сложного ничего нет, но все эти действия за 15 минут сделать не получится. Это практика.
А вот языком, как например любит делать наш директор, как раз именно так. (5 - 10 минут.)

Автор: AkelaSQL 20.10.2008, 08:34
Да вы сударь параноик!

1. Сделать бекап.
2. Написать обработку.
3. Выполнить на рабочей базе. Если, что не так вернешь из бекапа.

Ну пусть не 15 мин., но не более получаса.

Автор: Praetori 21.10.2008, 13:38
Чтобы на рейтинг влиять пока сообщений маловато, поэтому пока только постом поддерживаю Zero.
2AkelaSQL: с учетом уровня знаний автора темы проблема не решиться ни за 15 минут, ни за пол часа. Хорошо если автор базу не убьет такими экспериментами.

P/s: а за грубость не мешало бы и извиниться, вроде как культурные люди собрались.

Автор: AkelaSQL 21.10.2008, 15:25
1. Ну так грубить-то кто первый начал?

2. "с учетом знаний", могу сказать только одно - Не уверен, не обгоняй!

3. Я всего лишь описывал как достичь желаемого, страшно - не используйте....

Автор: Praetori 23.10.2008, 14:54
Откуда он может знать последствия не осознавая того что делает, пользуясь инструкциями а-ля "сделай раз, сделай два, сделай три"?

Автор: DzSoft 24.10.2008, 16:40
Цитата(Praetori @ 21.10.2008,  13:38)
Чтобы на рейтинг влиять пока сообщений маловато, поэтому пока только постом поддерживаю Zero.
2AkelaSQL: с учетом уровня знаний автора темы проблема не решиться ни за 15 минут, ни за пол часа. Хорошо если автор базу не убьет такими экспериментами.

P/s: а за грубость не мешало бы и извиниться, вроде как культурные люди собрались.


Это уже камушек в мой огород, "Сударь".
Могу сказать только одно. Судя по твоей базе знаний ты ниразу не убивал "Базу"  smile 

Ни чувствуешь иронию?!

Могу сказать лично тебе Praetori, что не мало баз убью ещё.
И буду убивать их до той поры, пока не врублюсь и не буду справляться без посторонней помощи.

Цитата(AkelaSQL @ 13.10.2008, 13:19)

учиться тебе сначала надо, а потом ставить опыты на людях...


А я, что делаю??? smile 


Автор: Zero 25.10.2008, 00:12
Цитата(AkelaSQL @  20.10.2008,  08:34 Найти цитируемый пост)
Да вы сударь параноик!

1. Сделать бекап.
2. Написать обработку.
3. Выполнить на рабочей базе. Если, что не так вернешь из бекапа.

А-ха-ха-ха-ха-хааааа....... smile  smile  smile 
Так можно делать только в однопользовательском варианте или т.п.

Например у нас фирма занимается переработкой метала и с базой работают одновременно порядка 25 пользователей, из удалённых участков города, + из другого города.
Приёмосдаточные акты делают практически через каждые 10 минут с каждой точки.
Если накуралесить в рабочей базе, а потом из бекапа восстановить, тогда весомая часть информации будет потеряна.
Например, несколько РКО-шек по которым кассир выдаёт деньги, ну и т.п. smile Только представь что со мной будет, если её придётся восстановить из архива, как ты сказал  smile  smile  smile Лучше сразу тогда  smile 

Автор: Praetori 27.10.2008, 10:50
Цитата(DzSoft @  24.10.2008,  16:40 Найти цитируемый пост)
Это уже камушек в мой огород, "Сударь".
Могу сказать только одно. Судя по твоей базе знаний ты ниразу не убивал "Базу"  smile 


В нашей фирме в базе работает 50-60 человек одновременно. Бэкапы делаются ночью. Если днем с базой станет "ёк", то чтобы я там не восстанавливал, нумерация документов сбивается, данные за день теряются. Если не понимаешь что значит потеря документов за день (пол дня), сходи к своему главбуху - пусть он тебя просветит. Пока вручную будут восстанавливать документы из бумажных копий (которые есть не всегда, ввиду своеобразности бизнес процессов происходящих в фирме), фирма потеряет не один миллион рублей дохода, плюс испортит отношения с заказчиками, что тоже приведет к убыткам. Вот такая вот цена у "нечаянно нажатой кнопочки". Это я все к тому, что у человека нашей профессии должен быть в голове тормоз, который срабатывает до совершения действий, после которых нельзя вернуть все как было. Поэтому лучше сейчас "камень в огород" чем потом наступить на такие грабли.

А базу я кстати ни одну не запорол.

Автор: AkelaSQL 27.10.2008, 11:16
Цитата

должен быть в голове тормоз,

Особенно понравилось....
 smile 

Автор: DzSoft 4.11.2008, 02:12
Praetori, Столько слов сказал  smile 

Я же не в рабочей базе делаю.

Сохранил себе одну, сломал.
Сохранил другую, сломал.

Рабочая база не тронута.
Как только исправления работают и всё ок. Я просто ввожу эти изминения в рабочую базу.

А рабочую я пока не убил. Тьфу-тьфу-тьфу. Тук-тук-тук по дереву smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)