Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с ценой
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Пользователю 1С 7.7 > 1С Бухгалтерия 7.7 для Украины
serg73
При установке 288 релиза, наверное забыли в конфигураторе где-то указать количество знаков после запятой и программа пересчитала все цены и округлила до двух знаков. Суммы остались нормальными.
Вопросы:
1. Можно ли как-нибудь цены вернуть назад (чтобы стало четыре знака после запятой)?
2. Или. У нас есть база на 02.08.11 нормальная. Можно ли в ту базу экспортировать данные из неправильной базы?

Если что непонятно расскажу более подробно.
Kutuzov
Цитата(serg73 @ 18.08.11, 16:34) необходимо зарегистрироваться для просмотра ссылки
При установке 288 релиза, наверное забыли в конфигураторе где-то указать количество знаков после запятой и программа пересчитала все цены и округлила до двух знаков. Суммы остались нормальными.
Вопросы:
1. Можно ли как-нибудь цены вернуть назад (чтобы стало четыре знака после запятой)?
2. Или. У нас есть база на 02.08.11 нормальная. Можно ли в ту базу экспортировать данные из неправильной базы?

Если что непонятно расскажу более подробно.


Можно, просто надо в тех полях где надо 4 знака после запятой поставить точность 4 и на всякий случай увеличить длину числового поля
serg73
Цитата(Kutuzov @ 18.08.11, 17:05) необходимо зарегистрироваться для просмотра ссылки
Можно, просто надо в тех полях где надо 4 знака после запятой поставить точность 4 и на всякий случай увеличить длину числового поля


Это мы и делаем когда ставим новый релиз. А когда ставили последний раз видно забыли указать и программа все цены пересчитала все цены до двух знаков. И если я снова установлю релиз, то все равно цены останутся с двумя знаками. Само поле цена имеет длину четыре ( например - 0,4900, а цена должна быть 0,4850)
Pepe
Золотое правило: прежде, чем вносить изменения, сделайте копию для возможности "отката".
endru
Напишите обработку, которая пройдется по докам, поделит сумму на к-во и занесет в цену.
gorik77
Цитата(serg73 @ 19.08.11, 11:18) необходимо зарегистрироваться для просмотра ссылки
Это мы и делаем когда ставим новый релиз. А когда ставили последний раз видно забыли указать и программа все цены пересчитала все цены до двух знаков. И если я снова установлю релиз, то все равно цены останутся с двумя знаками. Само поле цена имеет длину четыре ( например - 0,4900, а цена должна быть 0,4850)


а не проще просто доработать сам расчет, я так понимаю у вас округление в самом расчета стоит до 2 знака. просмотрите внимательно процедуру РасчитатьСтроку
Окр(Расчет,4);


Цитата(serg73 @ 18.08.11, 16:34) необходимо зарегистрироваться для просмотра ссылки
2. Или. У нас есть база на 02.08.11 нормальная. Можно ли в ту базу экспортировать данные из неправильной базы?


ето конечно можно, но для етого нужно просмотреть весь модуль в сравнении при обновлении "Объединении конфигураций" и все формы и таблицы внимательно на предмет критических изменений. да и вообще, после просмотра вся картина будет видна. и не забыть отключить все остальные доки, чтоб обновился только нужный.
serg73
Цитата(endru @ 19.08.11, 13:41) необходимо зарегистрироваться для просмотра ссылки
Напишите обработку, которая пройдется по докам, поделит сумму на к-во и занесет в цену.


Замечательно, именно я это и хочу. Но моих знаний по 1С (а точнее отсутствие этих знаний) не хватает для написании этой обработки. Я даже нашел где эти цены находятся и прекрасно понимаю, что надо сумму поделить на количество, но мозгов не хватает объяснить это программе.
Помогите, если можете!

Цитата(Pepe @ 19.08.11, 13:23) необходимо зарегистрироваться для просмотра ссылки
Золотое правило: прежде, чем вносить изменения, сделайте копию для возможности "отката".


Сделали копию (ну не полный же я чайник). Бухгалтер изменения в ценах не заметила, потому что сдавала налоги, а суммы то нормальные, потому и заметили только через неделю.
gorik77
возьмите действующую конфу, зайдите в конфигуратор. подгрузите для объединения старую версию и вы увидите что вам нужно делать даже без особых знаний 1С. но советую ето использовать только для просмотра того что и где нужно сделать. а не для объединения. а то точно без знаний можно и натворить делов. у вас трабла скорее всего в тексте модуля, а ето единственно удобный способ сравнивать как по мне.
5_kopeek
Цитата(endru @ 19.08.11, 12:41) необходимо зарегистрироваться для просмотра ссылки
Напишите обработку, которая пройдется по докам, поделит сумму на к-во и занесет в цену.

Цитата(serg73 @ 19.08.11, 14:44) необходимо зарегистрироваться для просмотра ссылки
Замечательно, именно я это и хочу. Но моих знаний по 1С (а точнее отсутствие этих знаний) не хватает для написании этой обработки.

Можете за основу взять следующее.
Создайте новую обработку с реквизитами ВыбНачПериода и ВыбКонПериода типа дата и кнопкой с формулой Выполнить(). В модуле добавьте нижеприведенный текст. Если необходимо, добавьте проверку на вид документа, а также, если есть такие, рассмотрите варианты, когда реквизиты цены, суммы, к-ва, коэффициента имеют отличные от ЦенаБезНДС, СуммаБезНДС и т.д. идентификаторы или вовсе отсутствуют.
Экспериментировать на копии.
//*********************************************************************
Функция ЕстьРеквизитМнЧ(ИмяРеквизита,ВидДокумента) Экспорт
    Перем Реквизит;    
    Если (ПустоеЗначение(ВидДокумента) = 1) ИЛИ
         (ПустоеЗначение(ИмяРеквизита) = 1) Тогда
        Возврат 0;
    КонецЕсли;
    Реквизит=Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита);
    Возврат Реквизит.Выбран();
КонецФункции //ЕстьРеквизитМнЧ()

//*********************************************************************
Процедура Выполнить()
    Док=СоздатьОбъект("Документ");
    Док.ВыбратьДокументы(ВыбНачПериода, ВыбКонПериода);
    Пока Док.ПолучитьДокумент()=1 Цикл
        Если ЕстьРеквизитМнЧ("ЦенаБезНДС",Док.Вид())=0 Тогда
            Продолжить;
        КонецЕсли; // ЕстьРеквизитМнЧ("ЦенаБезНДС",Док.Вид())=0
        Док.ВыбратьСтроки();
        Если Док.ПолучитьСтроку()=1 Тогда
            Цена=Док.ПолучитьАтрибут("ЦенаБезНДС");
            Если Цена<>Окр(Цена,2) Тогда
                Продолжить;
            КонецЕсли; // Док.ПолучитьАтрибут("ЦенаБезНДС")  
            Сообщить("Редактирование цен в документе "+Док.ТекущийДокумент());
            Попытка
                Док.УстановитьАтрибут("ЦенаБезНДС",(Док.ПолучитьАтрибут("СуммаБезНДС")/(Док.ПолучитьАтрибут("Коэффициент")*Док.ПолучитьАтрибут("Кво"))));
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;              
        КонецЕсли; // Док.ПолучитьСтроку()=1
        Попытка
            Док.Записать();
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры //Выполнить
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.