Вопрос № 85990: Доброго Здоровья Уважаемые Эксперты!Уже задавал этот вопрос, но приходится задать его еще раз - не совсем разобрался в некоторых вопросах.В 1С 7.7 конфигурация УСН 153 релиз в документе "Реализация" требуется добавить возможность устанавлив...Вопрос № 86031: Здравствуйте уважаемые эксперты! Пытаюсь сделать на основе отчета ОтчетПоОС из типовой Бухгалтерии другой: чтобы выводилась остаточная стоимость на 1-ое число
месяца за период ДатаНач - ДатаКон. Пока получилось только отдельными таблицами (см.приложе...
Вопрос № 85.990
Доброго Здоровья Уважаемые Эксперты!Уже задавал этот вопрос, но приходится задать его еще раз - не совсем разобрался в некоторых вопросах.В 1С 7.7 конфигурация УСН 153 релиз в документе "Реализация" требуется добавить возможность устанавливать скидку - т.е. в табличную часть добавить колонки "сумма без скидки" "скидка" "сумма со скидкой" - ну это я кое как сделал(было не сложно)! Не получается внести правильные изменения в модуль документа - что-бы программа сама высчитывала
сумму без скидки(цена помноженная на количество) и сумму со скидкой(сумму без скидки минус скидка).Как это сделать?И самое главное не могу понять как внести измения в печатную форму документа - чтобы при выводе на печать скидка отражалась?
Очень нужна помощь хотя бы по одному из заданных вопросов!Буду очень признателен!
С Уважением Александр.
Отправлен: 08.05.2007, 11:35
Вопрос задал: Alex81 (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Pycuk
Здравствуйте, Alex81!
УСН 153 я в глаза невидел поэтому раскажу как можно зделать без кода
Предположим что в реквезитах табличной части
сумма без скидки обозначена реквизитом СумБезСкид
скидка - Скид
сумма со скидкой - СумСоСкид
у всех ставиш тип число точность 2 длина 12 (думаю хватит максимальная сумма будет 999 999 999,99 рублей, можно больше или меньше)
В таблице документа клацаеш 2 раза на столбце цена (на самой надписи), выскакивает свойства поля ввода выбираеш третью закладку (дополнительно) в строке формула пишиш
СумБезСкид=Цена*количество
(цена и количество надо написать так же как они заданы 2 раза на надпись столбца и смотри не на заголовок а на индентификатор)
Теперь после оканчания редактирования или ввода (Enter или в бок) цены будет расчитываться формула СумБезСкид=Цена*количество
Советую этуже формулу написать в свойствах количества что бы неимело значения что надо вводить первым цену или количество (будь осторожен если будеш делать деление при делении на 0 будет выскакивать ошибка)
В печатной таблице пишеш в нужной ячейки индентификатор того что должно выводиться (пр. СумБезСкид) потом клацаеш на этой ячейки правой кнопкой мыши выбираеш свойства и меняеш тип текст на выражение (токо советую в той же строке где выводятся реквезиты табличной части а не шапки документа)
Ответ отправил: Pycuk (статус: 1-ый класс)
Ответ отправлен: 10.05.2007, 10:04
Отвечает: Игорь К.
Здравствуйте, Alex81!
Колонки "сумма без скидки" "скидка" "сумма со скидкой" в табличную часть добавили?
Полагаю в табличной части есть поля "Цена" и "Количество".
1. Мышкой выделяем табличную часть.
Далее выделяем столбец "Цена". (Левой кнопкой по заголовку столбца)
Нажимаем правую кнопку - Свойства.
Выбираем вкладку "Дополнительно".
В поле "Формула" пишем наименование процедуры, которая будет выполняться при внесении изменений в поле "Цена".
Допустим - "ПриСменеЦеныИлиКоличества()"
Тоже самое проделываем со столбцом "Количество" .
В столбец "Скидка" в поле "Формула" пишем: "СуммаСоСкидкой=СуммаБезСкидки-Скидка" (без кавычек)
В модуле документа пишем:
Процедура ПриСменеЦеныИлиКоличества()
СуммаБезСкидки=Цена*Количество;
// "СуммаБезСкидки"-идентификатор введенной вами колонки табличной части
СуммаСоСкидкой=СуммаБезСкидки-Скидка;
КонецПроцедуры;
Еще момент: Если поля "СуммаБезСкидки" и "СуммаСоСкидкой" вычисляются то в свойсвах этих полей в табличной части надо поставить галочку "запретить редактирование".
2. В печатной форме мышкой выделяем колонку перед которой надо вставить вывод поля "скидка". Правой кнопкой мыши - пункт "раздвинуть".
Появился новый столбец. По аналогии с соседними столбцами заполняем характеристики. Можно просто Скопировать из соседнего столбца и поменять значения и(или) формулы на нужные.
Дерзайте и Все у Вас получится. Удачи!
--------- Лучше два часа потерять, потом за пять минут долететь
Ответ отправил: Игорь К. (статус: 4-ый класс)
Ответ отправлен: 10.05.2007, 10:50
Отвечает: Elric
Здравствуйте, Alex81!
Пришлите, пожалуйста, файл своей конфигурации мне на e-mail, он указан у меня в карточке. Я посмотрю в чем у Вас проблема -- дело в том что там могут быть нюансы, не зная уровня Вашей квалификации я не знаю от чего можно отталкиваться.
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 10.05.2007, 12:41 Оценка за ответ: 5 Комментарий оценки: Хорошо.Пришлю.
Вопрос № 86.031
Здравствуйте уважаемые эксперты! Пытаюсь сделать на основе отчета ОтчетПоОС из типовой Бухгалтерии другой: чтобы выводилась остаточная стоимость на 1-ое число месяца за период ДатаНач - ДатаКон. Пока получилось только отдельными таблицами (см.приложение Сформировать()). Как и где именно мне описать это в процедуре Сформировать1()? Подскажите пожалуйста...
Приложение:
Отправлен: 08.05.2007, 17:11
Вопрос задала: Darina (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Darina!
Ой. Малой кровью не получится. Дело в том что в Сформировать1 у Вас выводится одномерная таблица, с одним измерением "ОС по вертикали"
а в постановке задачи требуется вывести двумерную таблицу с измерениями "ОС по вертикали", "месяц по горизонтали".
Двумерные таблицы 1С прекрасно рисует. Левая колонка выводится Т.ВывестиСекцию("Строка|ИмяОС"); а потом добавляются колонки
Т.ПрисоединитьСекцию("Строка|месяц");
К сожалению, (не обижайтесь) данная задача сложна.
Можете вывести одномерную таблицу. Примерно так:Строка 1 ИмяОС Строка 2 месяц№1, Строка 3 месяц№2 ..., потом пустая строка, потом следующее ОС. Для этого Вам прийдется в корне переписать отчет. После вывода
Т.ВывестиСекцию("ОС"); делаете цикл по месяцам, выводя номер месяца и остаточную стоимость. Но так как прийдется делать рассчеты Цикл в Цикле (Цикл по ОС, а внутри его цикл по месяцам), то данный отчет будет работать очень долго.
В о
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 08.05.2007, 18:26 Оценка за ответ: 5 Комментарий оценки: Спасибо, но мне нужна всё-таки двумерная таблица. Я ещё поломаю голову...
Отвечает: Elric
Здравствуйте, Darina!
По-моему, Шахрайчук Владимир Анатольевич отвечал не совсем на Ваш вопрос :)
У Вас в процедуре Сформировать1() есть такие строчки: Если (ТипЗначенияСтр(Т) <> "Таблица") ИЛИ (Обновить = 0) Тогда
Т = СоздатьОбъект("Таблица");
Иначе
Т.Очистить();
КонецЕсли;
Т.ИсходнаяТаблица( "Таблица" );
Их следует заменить на следующее: Если ТипЗначенияСтр(Т) <> "Таблица" Тогда
Т = СоздатьОбъект("Таблица");
КонецЕсли;
а участок кода Т.Опции(0,0,6,2,"ОпцииПечатиОтчетаПоОС");
Т.ОбластьПечати(3);
Т.ТолькоПросмотр(1);
Т.Показать("Отчет по ОС");
нужно переместить из процедуры Сформировать1() в самый конец процедуры Сформировать().
Тогда новые раздельные таблицы не будут создаваться.
Кстати, переменная Т при этом должна быть глобальной, т.е. доступной в обеих процедурах.
Удачи!
--------- Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 10.05.2007, 12:37 Оценка за ответ: 5 Комментарий оценки: Спасибо за подсказку. Кстати чтобы выводился такой результат как Вы написали, необязательно переносить участок кода в Сформировать(). Однако, мне то нужно не это. А всё в одной таблице: по каждому наименованию ОС остатки на 1-ое число каждого месяца. Извините если неправильно описала в вопросе