Добавляем колонку с закупочной ценой в печатную форму документа "Реализация"

В программе 1С 7.7  "Торговля и склад" достаточно печатных форм, но как бы много их не было все равно хочется что-то изменить, что-то добавить... Очень часто пользователи программы хотят добавить свои печатные формы или изменить что-то в существующих.. и это здорово - это значит пользователи настраивают учет под себя и хотят получать более точную , более полную информацию..

Буквально пару дней назад был задан вопрос и дополнительной колонке, т.ч.....

Сегодня будем добавлять колонку с закупочной ценой в печатную форму документа "Реализация" .

Сразу предупреждаю, что закупочные цены будут браться из справочника цен на дату документа. Это именно справочная цена, а не та цена по которой товар будет списываться в программе (в следующем посте мы поговорим о том, чем эти цены отличаются друг от друга)...  Как понимаю, такой вопрос возник из желания контролировать продажные цены, а потому добавим еще и колонку с процентом наценки, так, на всякий случай, что бы проверять продажные цены было легче :)

Итак, на всякий случай, можем сохранить базу и сохранить внешние формы и отчеты - конфигурацию базы мы трогать не будем, но подстраховаться никогда не помешает...

Многие печатные формы - внешние и лежат они в каталоге базы в папке ExtForms - там они сгруппированы в папку PrnForms. Но для начала хорошо бы узнать, как называется нужная я нам форма..

Открываем программу в режиме Предприятия. Смотрим "Сервис" - "Регистрация внешних печатных форм"
В открывшемся окне нам нужна галочка "Документа" (стоит по умолчанию) и ниже выбираем из списка документов документ "Реализация"

Открывается список печатных форм для документа. Нам нужна самая простая - "Печатная форма". Смотрим название файла (подчеркнуто красной линией)


Теперь открываем нашу базу в режиме Конфигуратора. Через "Файл" - "Открыть" находим нашу печатную форму "sale.ert"

Можно сразу открыть форму, поработать с ней, а потом сохранить как новую с новым именем... Но я частенько забываюсь и просто нажимаю на сохранить - в результате старая форма стирается, а новая записывается..  

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

Открыли форму. Для начала я всегда перехожу к таблице (видите внизу вкладочки "Диалог", "Модуль", "Описание" и "Таблица"? ) - мне проще сначала посмотреть на таблицу, добавить в нее все, что нужно и потом переходить уже к коду..

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

Делаем такие же колонки по ширине и высоте - выделяем нужную область и щелкаем на кнопочке, на которую указывает красная стрелка - эта кнопочка объединяет выделенные области в одну
Щелкаем по нашей объединенной области правой кнопкой мыши и выбираем "Свойства..." - здесь несколько вкладок:

1. Текст : в поле "Тип" оставляем "Тест", в поле "Контроль" оставляем "Авто", а вот внизу в большом поле пишем "ЦенаЗакуп" - это у нас такое название для колонки с закупочной ценой

2. Положение: - тут ставим галочки "Центр" и "Центр" - название нашей колонки будет по центру


3. Шрифт: здесь снимаем галочку со второго "Авто" и меняем размер шрифта на 10 и ставим Жирн.

4. Рамка: здесь выставляем рамки для области, т.е. очерчиваем ее - тонкие линии, жирные и т.п... тут лучше поэксперементировать, что бы лучше понять и выставить, как нравится (результат виден в программе - в конфигураторе рамочки видны, но не особо понятно, как все в целом выглядит)
5. Узор - трогать не будем.
Так же задаем название колонки для процента.
Под шапками колонок снова объединяем столбцы в один - тут будут данные (т.е. собственно сама закупочная цена для каждого товара и процент наценки)


Тут на первой вкладке в поле "Тип" выбираем "Выражение", а в большом поле пишем:
глФРМ(ЦенаЗакуп) - для колонки с ценой, глФРМ(Процент) - для колонки с процентом.. На вкладке "Положение" ставим "Право" и "Низ".. ну и выбираем линии на вкладке ""Рамка"..

Есть в накладной длинные линии - для красоты, для удобства восприятия информации... подрисуем их тоже, что бы было красиво..
Теперь переходим на вкладку "Модуль" и находим процедуру (самая первая) : Процедура Печать(Докум, Устройство=0, КолвоКопий=1) 
Далее ищем такие строки:
Пока Докум.ПолучитьСтроку() = 1 Цикл
НомСтроки = НомСтроки + 1;  
ИсхТабл.ВывестиСекцию("Строка" + СекцСкидка);
КонецЦикла;

И вот  после НомСтроки = НомСтроки + 1; вставляем такой текст:
ТипЦеныЗакуп=глЗначениеПоУмолчанию("ОсновнойТипЦенПокупки"); 
ЦенаЗ="";
Если глВернутьЦену(Докум.Номенклатура, ТипЦеныЗакуп,Докум.ДатаДок, ЦенаЗ, Докум.Единица, Докум.Валюта) = 1 Тогда  
ЦенаЗакуп=ЦенаЗ;     
Если ЦенаЗакуп<>0  Тогда
Процент=((Докум.Сумма/Докум.Количество)*100)/ЦенаЗакуп-100;
Иначе
        Процент="";
КонецЕсли;
Иначе
        ЦенаЗакуп="";
Процент="";
КонецЕсли;   
Сохраняем нашу форму (Файл - Сохранить).
Теперь в режиме Предприятие нам нужно  зарегистрировать нашу новую печатную форму.

Открываем программу в режиме Предприятия. Снова идем туда же, где смотрели внешние формы для документа "Реализация": "Сервис" - "Регистрация внешних печатных форм" и внизу нажимаем кнопку "Изменить" - и выбираем "Внести в список"
В открывшемся окне выбираем нашу форму:


и задаем ей имя (будет отражаться при выборе печатной формы в документе)

Ну и смотрим что получилось:



И смотрим видео:






35 коммент.:

Андрей Бабакин комментирует...

Марино Вы просто гений!!! Большое спасибо! Все работает!!!

Marina Shulakova комментирует...

Андрей, я рада, что у Вас все получилось и что мой пост Вам в этом помог :)

Яна Александрова комментирует...

Марина, добрый день! Подскажите, пожалуйста, как сделать, чтобы в накладной реализации ТОРГ 12 в колонке "Масса (брутто)" напротив каждой номенклатурной позиции стоял ее вес. (В карточке номенклатуры он указан.
Спасибо.

Marina Shulakova комментирует...

Добрый день, Яна! Действительно, если смотреть в печатной форме, то в этой колонке нет никаких формул - совершенно пусто.. Видимо, предполагается, что при необходимости вес заполняется вручную... Загляните после праздников - я подготовлю и опубликую пост о том, как добавить данные в эту колонку. Форма Торг12 - внешняя форма, а потому ее вполне можно скопировать и внести в нее изменения, не затрагивая при этом саму программу.

Яна Александрова комментирует...

Спасибо, Марина! Буду ждать)))

Unknown комментирует...

А как добавить сумму внизу?

Marina Shulakova комментирует...

Что бы была закупочная сумма по накладной можно добавить колонку с закупочной суммой и внизу общую сумму, либо в модуле формы просчитать сумму и в печатной форме добавить только ее..
Вопрос был о дополнительной колонке с закупочными ценами в документе продаж. Обычно в таких документах закуп не отражают. Если Вас интересует конкретный документ - можем разобрать на его примере :)

Дмитрий Османов комментирует...

Речь идет о добавлении итоговой суммы закупа рядом суммой розничной, чтобы при вычитании была видна торговая наценка по документу в целом. С программированием не знаком, но по вашему примеру на решил доработать печатную форму и появилась необходимость добавить итоговую сумму закупа.

Marina Shulakova комментирует...

Да, я поняла о чем идет речь, но думала, что если такое нужно в другом другом документе, например в поступлении, то можно было бы разобрать на примере этого документа... но могу и тут написать :)
Перед строкой "Пока Докум.ПолучитьСтроку() = 1 Цикл" ставим вот такое: "СуммаЗакуп=0;" после строк "Если глВернутьЦену(Докум.Номенклатура, ТипЦеныЗакуп,Докум.ДатаДок, ЦенаЗ, Докум.Единица, Докум.Валюта) = 1 Тогда
ЦенаЗакуп=ЦенаЗ;" ставим "СуммаЗакуп=СуммаЗакуп+ЦенаЗакуп;" а в таблице просто скопируйте поле под колонкой "Сумма" и рядом с "Итого:" и вместо "СуммаИтог" поставьте "СуммаЗакуп" ... Будут вопросы - спрашивайте :)

Дмитрий Османов комментирует...

Спасибо Марина все получилось!
Ради эксперимента сделал тоже самое с документом поступление. Только добавил туда в секцию ИтогоНДС, разницу
"ТоргНац=СуммаИтог-СуммаЗакуп;".
Все получилось так как надо. И вообще похоже вы открыли во мне будущего программиста 1С=). Буду изучать дальше.

Marina Shulakova комментирует...

Дмитрий, я рада, что у Вас все получилось :) И хорошо, что Вам понравилось - программировать в 1С очень интересно! :)

Анонимный комментирует...

Здравствуйте! Как добавить в Торговля и скдлад 7.7 релиз 987(документ "Заявка покупателя" (Счет)) Колонку после "Товар" - в шапке Статус\Склад - Ниже с возможностью выбора "В наличие", "Под заказ". пожалуйста, помогите. igo13@rambler.ru

Marina Shulakova комментирует...

Добрый день! Вот честно пыталась понять, что же и куда нужно добавить, но увы...
Колонку хотите добавить табличную часть? После колонки "Номенклатура"? Название новой колонки "Статус/Склад"? И в этой колонке хотелось бы выбирать два статуса:"В наличии" или "Под заказ"?
Если все так - то хотелось бы понять для чего все это? Должно ли это отражаться в печатной форме? Может еще на что-то должен влиять этот выбор? Или я совсем все не так поняла?

Игорь комментирует...

Ни на что не влияет, просто чтоб была Колонка с названием и статусом выбора. информация для покупателя "В наличие", или "Под заказ"

Игорь комментирует...

Если все так - то хотелось бы понять для чего все это? Только для покупателя для информации. Должно ли это отражаться в печатной форме? Да Может еще на что-то должен влиять этот выбор? Нет

Marina Shulakova комментирует...

Игорь, смотрите ответ на Ваш вопрос тут http://1ctisprosto.blogspot.ru/2017/02/blog-post.html
Надеюсь, что все понятно написала :)

Игорь комментирует...

спасибо,большое, попробую разобраться. А нельзя было во внешнем отчете zayavka.ert внести изменения, чтоб не "копать" базу, а просто выбрать с измененную "zayavka.ert"?

Marina Shulakova комментирует...

Игорь, я рада, что Вы знаете про внешние формы :) Я знаю три вида: внешний отчет, внешняя обработка и внешняя печатная форма. Так вот - то, что Вы называете внешним отчетом zayavka.ert - это внешняя печатная форма.. Отвечаю на Ваш вопрос - нет. Возможно, можно добавить этот выбор в саму печатную форму, но это придется сохранять все печатные формы для всех заявок отдельными файлами и, если будут какие-то изменения в самом документе - вносить вручную изменения в печатную форму-файл или сохранять новую. Проще внести изменения в документ - документы запоминают введенную информацию и ее можно в любой момент распечатать.

Первоначально Вы писали, что эта колонка никуда больше не нужна. Ваш следующий комментарий я увидела уже позже. Вы будете удивлены, но кроме ведения этого блога у меня есть есть множество дел: ребенок, который требует внимания, не ходит в садик и в наличии нет ни бабушек ни дедушек ни кого бы то еще, кто мог бы с ним посидеть... а так же клиенты, которым я как раз сейчас нужна из-за новых требований к кассам, и еще одна подработка.

Поэтому я считаю неуместными Ваши 33 вопроса (которые я не буду публиковать) про то, что колонка не печатается, почему не печатается и как-это так, когда именно это и нужно и тд... Как вопрос задали - так и получили ответ. Сразу нужно писать подробно про желаемые изменения - я мысли читать не умею

Сегодня я напишу, как добавить эту колонку в печатную форму - следите за постами на блоге

Игорь комментирует...

Марина, здравствуйте! Всё сделал, огромное спасибо. Могу скинуть небольшое вознаграждение На Ваше Благое Дело, что помогаете "простым смертным". С уважением, Игорь igo13@rambler.ru жду номерочек какого-нибудь кошелька

Marina Shulakova комментирует...

Добрый день, Игорь! Рада, что у Вас все получилось :) Спасибо за предложение :) Заманчиво, но я рассматриваю здесь простые вопросы и "Спасибо" мне вполне достаточно :))

Игорь комментирует...

низкий вам поклон!!!!

Яна Александрова комментирует...

Марина, здравствуйте! Однажды Вы мне уже помогли с торг-12, чем вдохновили на самостоятельное изучение программирования в 1с 7.7 по учебнику, но знаний пока не хватает, а потребность в новом отчете, вернее изменении старого есть)) Надеюсь опять на Вашу помощь, может быть это вас заинтересует. Дело вот в чем: есть в 1с 7.7 комплексная «отчет по клиентам», хочется на его основе, сделать подобный, но с добавлением новых колонок из торг-12, а именно, отдельные колонки с артикулом товара, единицей измерения, кодом по ОКЕИ и весом брутто (по идее получается сводная накладная, сейчас я это делаю вручную в ексель, для того чтобы получился торг-12 по всем позициям за определенный период).
С уважением, Яна.

Marina Shulakova комментирует...

Добрый день, Яна! С удовольствием помогу разобраться и добавить колонки в отчет, но подскажите пожалуйста, Вы написали 1С 7.7 комплексная - это какая 1С? Отчет по клиентам есть и в 1С "Торговля и склад", но если у Вас 1С другая, то отчеты могут немного отличаться по коду и то, что я напишу для отчета в 1С ТиС может не подойти для такого же отчета, но в другой 1С

Яна Александрова комментирует...

Марина, спасибо за ответ! Посмотрела в меню о программе написано: Конфигурация комплексная: "Бухгалтерия+Торговля+Склад+Зарплата+Кадры", ред. 4.5 (7.70.454). Я скопировала код отчета, могу прислать, если нужно.

Marina Shulakova комментирует...

Яна, я посмотрела, что отчеты в этих программах практически одинаковые :)) Отчет немного сложный, т.ч. я изучу его и посмотрю, как проще сделать то, что Вам нужно :)) Думаю, через день-два я напишу, что можно с этим отчетом сделать :))

Яна Александрова комментирует...

Спасибо, Мариночка. Буду ждать.

Marina Shulakova комментирует...

Яна, специально для Вас :) http://1ctisprosto.blogspot.ru/2017/03/blog-post.html

Андрей Бабакин комментирует...

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

Marina Shulakova комментирует...

Здравствуйте, Андрей!
Все немного не так :) ЦенаЗакуп - это мы сами обозвали так переменную и она никак не закреплена за самой ценой..
Со средней ценой все сложнее, но попробовать можно.. Что бы выяснить среднюю цену нужно обращаться к регистрам , получить сумму закупа и кол-во и рассчитать...В этом случае может получится так, что программа будет дольше думать над этой накладной :) За какой период нужна эта средняя цена?

Андрей Бабакин комментирует...

Марина доброе утро!:)
Средняя цена за последние 2 недели. Я думаю так. Или на то что есть на складе.
Я вот сам не не знаю как лучше. Он сказал средняя.

Marina Shulakova комментирует...

Доброе утро, Андрей!
Вам нужно сходить к шефу и спросить, что именно он подразумевает под средней ценой.
Представьте, что Вы пришли в ресторан и заказываете на десерт мороженое - Вы говорите официанту, что не знаете какое и сколько, но определенно хотите мороженое.. Официант не примет у Вас такой заказ..Так и тут: нельзя давать расплывчатое задание программисту, которое еще сами не до конца представляете как должно работать..

Андрей Бабакин комментирует...

Добрый вечер! Средняя цена товара, который на тот момент лежит на складе.

Marina Shulakova комментирует...

Здравствуйте, Андрей! Вот тут я постаралась ответить на Ваш вопрос :) http://1ctisprosto.blogspot.ru/2017/05/2.html

Андрей Бабакин комментирует...

Марина большое спасибо большое! Буду пробовать. :)

Андрей Бабакин комментирует...

Марина еще раз огромное спасибо! Все работает! Все супер! :))

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...