1c для начинающих

  • Автор темы Автор темы Mr_Fluke
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
не подскажите как можно приобрести эту книгу "Профессиональная разработка в 8.0." Габец
Попробуй спросить у ближайших франчайзи. Их список можно найти на сайте 1С. Там-же, открыт и розничный магазин, можешь попробовать заказать ч-з него.

ВОПРОСИК? В документе ( счет, расходная накл.,налоговая ) в графе цена после запятой стоит 6 знаков , а при выводе на печать в этой же графе 2 знака после запятой . Как исправить даное положение тоесть что бы при выводе на печать тоже отображалось 6 знаков после запятой . Версия 1С Предприятие 7.7
В шаблоне печатной формы в соответствующей графе смотри, что-то вроде
Код:
Сум#Ч019.2.,
Форматная строка имеет вид:
для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч);
Если не обнаружишь ничего подобного, значит форматирование происходит в коде обработки вывода на печать, куда я тебя и отправлю. Ищи в программе нечто типа:
Код:
Сум = ........;
 
если есть возможность покажи где здесь меняется это значение , а то в первом варианте предложеном тобой нету таких даных, разве что только для счета входящего подходит а для просто щета и др док не подходит.
Прошу прощения за флуд , больше не буду.

Код:
Процедура Печать(БыстраяПечать=0)

// проверим соответствие Сумм С НДС и Без НДС
// при ошибках округления будут выданы предупреждающие сообщения.
глПроверкаНДСВДокументе(Контекст, Итог("СуммаБезНДС"), Итог("СуммаСНДС"), Итог("НДС"));

Таб = СоздатьОбъект("Таблица");	

ПечФорма = "Таблица";
Язык = глЯзык(ПечФорма); 	
Таб.ИсходнаяТаблица(ПечФорма);
глУстПропись(Валюта,Язык);

Ном = 0;ВСоставе = 0;

ИтСуммаБезСкидки = 0;ИтСумма = 0;ИтСуммаСкидки = 0;

фЕстьСкидка = 0;
Если Итог("Скидка")<>0 Тогда
фЕстьСкидка = 1;
КонецЕсли;

Если (Константа.ОсновнаяЦена = Перечисление.ВидыЦенВДокументах.ЦенаСНДС) Тогда
ЗагЦена  = ?(Язык="у","Ціна з ПДВ","Цена с НДС");
РеквЦена = "ЦенаСНДС";
РеквСумма = "СуммаСНДС";
Иначе
ЗагЦена  = ?(Язык="у","Ціна без ПДВ","Цена без НДС");
РеквЦена = "ЦенаБезНДС";
РеквСумма = "СуммаСНДС";
КонецЕсли;

Если фВключенаТорговля = Да Тогда
тЗаказ = глСтрокаОснование(Контекст,Заказ);
Иначе
Если Заказ.Выбран() = 1 Тогда
Номер = Заказ.НомерДок;
Если Заказ.Вид() = "Договор" Тогда
Если ПустоеЗначение(Заказ.НомерДоговора) = 0 Тогда
Номер = СокрЛП(Заказ.НомерДоговора);
КонецЕсли;
КонецЕсли;			
тЗаказ = ?(Язык="у", глУкр(Заказ.ПредставлениеВида()) ,Заказ.ПредставлениеВида()) + " № " +СокрЛП(Номер) + ?(Язык="у", " від "," от ") + Заказ.ДатаДок;
Иначе
тЗаказ = ?(Язык="у","Без замовлення","Без заказа");
КонецЕсли;
КонецЕсли;

Если Константа.ИспользоватьСпецСчетаПоНДС.Получить(ДатаДок) = Перечисление.ДаНет.Да Тогда
Таб.ВывестиСекцию("Шапка");
Иначе
Таб.ВывестиСекцию("Шапка<");
Таб.ВывестиСекцию("Шапка>");
КонецЕсли;

Таб.ВывестиСекцию("ШапкаТовар|Груп_1");
Если фЕстьСкидка = 1 Тогда
ЗагСумма1 = ?(Язык="у","Сума", "Сумма" );
ЗагСумма2 = ?(Язык="у","Знижка","Скидка");
Таб.ПрисоединитьСекцию("ШапкаТовар|Груп_2");
КонецЕсли;
ЗагСумма1 = ?(Язык="у","Сума без ПДВ","Сумма без НДС");
ЗагСумма2 = ?(Язык="у","Сума з ПДВ", "Сумма с НДС" );
Таб.ПрисоединитьСекцию("ШапкаТовар|Груп_2");

ИтСуммаБезСкидки = 0;
ИтСкидка		 = 0;
ИтСуммаБезНДС	= 0;
ИтСуммаСНДС	 = 0;

фЕстьТара =0;

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл				
Если Набор.Выбран()=1 Тогда
Если (ПустоеЗначение(ВСоставе)=1) или (ВСоставе<>Набор) Тогда
Таб.ВывестиСекцию("СтрокаНабор|Груп_1");
Если фЕстьСкидка = 1 Тогда
Таб.ПрисоединитьСекцию("СтрокаНабор|Груп_2");
КонецЕсли;
Таб.ПрисоединитьСекцию("СтрокаНабор|Груп_2");
ВСоставе=Набор;
КонецЕсли;
Иначе
Если ПустоеЗначение(ВСоставе)=0 Тогда
ВСоставе=0;
КонецЕсли;
КонецЕсли;

Если ЧтоПродаем = Перечисление.ЧтоПродаем.Товары Тогда
Если (ВидТары <> Перечисление.ВидыТары.Покупная) и (ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара) Тогда
фЕстьТара = 1;
Продолжить;
КонецЕсли;	 
КонецЕсли;	

ИтСуммаБезСкидки = ИтСуммаБезСкидки + СуммаБезСкидки;
ИтСкидка		 = ИтСкидка		 + Скидка;
ИтСуммаБезНДС	= ИтСуммаБезНДС	+ СуммаБезНДС;
ИтСуммаСНДС	 = ИтСуммаСНДС	 + СуммаСНДС;

Ном = Ном + 1;

ПечЦена = глФРМТ(ПолучитьАтрибут(РеквЦена),Валюта,0);
Таб.ВывестиСекцию("СтрокаТовар|Груп_1");
Если фЕстьСкидка = 1 Тогда
ПечСумма1 = глФРМТ(СуммаБезСкидки,Валюта,0);		
ПечСумма2 = глФРМТ(Скидка,		Валюта,0);
Таб.ПрисоединитьСекцию("СтрокаТовар|Груп_2");
КонецЕсли;
ПечСумма1 = глФРМТ(СуммаБезНДС,Валюта,0);
ПечСумма2 = глФРМ3(СуммаСНДС, Валюта,0);
Таб.ПрисоединитьСекцию("СтрокаТовар|Груп_2");
КонецЦикла;

ИтСуммаБезСкидки = Окр(ИтСуммаБезСкидки,2);
ИтСкидка		 = Окр(ИтСкидка,		2);
ИтСуммаБезНДС	= Окр(ИтСуммаБезНДС,  2);
ИтСуммаСНДС	 = Окр(ИтСуммаСНДС,	 2);

Таб.ВывестиСекцию("ИтогоТовары|Груп_1");
Если фЕстьСкидка = 1 Тогда
ПечИтСумма1 = глФРМТ(ИтСуммаБезСкидки,Валюта,0);
ПечИтСумма2 = глФРМТ(ИтСкидка,		Валюта,0);
Таб.ПрисоединитьСекцию("ИтогоТовары|Груп_2");
КонецЕсли;
ПечИтСумма1 = глФРМТ(ИтСуммаБезНДС,Валюта,0);
ПечИтСумма2 = глФРМТ(ИтСуммаСНДС, Валюта,0);
Таб.ПрисоединитьСекцию("ИтогоТовары|Груп_2");

ИтСуммаТары = 0;

Если фЕстьТара = 1 Тогда

Если ВидТары = Перечисление.ВидыТары.Возвратная Тогда
ЗагТара = ?(Язык="у","Тара зворотна","Тара возвратная");
ИначеЕсли ВидТары = Перечисление.ВидыТары.Залоговая Тогда
ЗагТара = ?(Язык="у","Тара заставна","Тара залоговая");
КонецЕсли;

Таб.ВывестиСекцию("ШапкаТара");

Ном = 0;

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Если (ТМЦ.ВидТМЦ <> Перечисление.ВидыТМЦ.Тара) Тогда
Продолжить;
КонецЕсли;

ИтСуммаТары = ИтСуммаТары + ПолучитьАтрибут(РеквСумма);

ПечЦена = глФРМТ(ПолучитьАтрибут(РеквЦена), Валюта,0);
ПечСумма = глФРМТ(ПолучитьАтрибут(РеквСумма),Валюта,0);

Ном = Ном + 1;

Таб.ВывестиСекцию("СтрокаТара");
КонецЦикла;

ИтСуммаТары = Окр(ИтСуммаТары,2);
ПечИтСумма = глФРМТ(ИтСуммаТары,Валюта,0);

Таб.ВывестиСекцию("ИтогоТара");

КонецЕсли;

ПечСНДСПропись = глСуммаПрописью(ИтСуммаСНДС + ИтСуммаТары,Валюта);
ПечНДСПропись = " "+глФРМТ(ИтСуммаСНДС - ИтСуммаБезНДС,Валюта,1);

Таб.ВывестиСекцию("Дно|Груп_1");
Таб.ПрисоединитьСекцию("Дно|Груп_2");

Таб.ПараметрыСтраницы(,,,,,,,,,1,,);
Если БыстраяПечать=1 Тогда
Таб.КоличествоЭкземпляров(глВосстановитьЗначение(,"ПечКолЭкзСчетаПриБыстройПродаже"));
Таб.Напечатать(0);
Иначе	
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,,);
Таб.Показать("ПЕЧАТЬ: Счет - фактура","");
КонецЕсли;
КонецПроцедуры
 
Для: Кеналое
В вашем коде есть ссылки на глобальный модуль. Необходимо еще и его привести тут и заработать бан. А пока - просто предупреждение (повышение) и рекомендация пройтись по коду отладчиком (самостоятельно) и выяснить, где формируется интересующая вас сумма.
 
Код:
ИтСуммаСНДС	 = Окр(ИтСуммаСНДС,	 2);
ПечИтСумма = глФРМТ(ИтСуммаТары,Валюта,0);
думается мне, форматирование происходит в одной, либо в обеих функциях, и аналогичных по коду. находится они могут как в текущем, так и в глобальном модуле. Смотри их. Хотя, меня заинтересовало, я их заметил просто пролистывая твой код, а ты его вообще смотрел? Разобраться пытался?
 
<!--QuoteBegin-Zab+5:07:2007, 10:00 -->
<span class="vbquote">(Zab @ 5:07:2007, 10:00 )</span><!--QuoteEBegin-->думается мне, форматирование происходит в одной, либо в обеих функциях
[snapback]71416" rel="nofollow" target="_blank[/snapback]​
[/quote]
:) ;) :lol: :lol:
Да особенно широко для форматирования строк используется функция Окр(...)!
 
vitfil, а почитать исходный пост? :) человечка то интересует, где отваливаются 4 знака после запятой. А отваливаться они могут как в одной, так и в другой ;) :lol: (я понимаю, что модератор имеет техническую возможность посмеяться последним :lol: )
ВОПРОСИК? В документе ( счет, расходная накл.,налоговая ) в графе цена после запятой стоит 6 знаков , а при выводе на печать в этой же графе 2 знака после запятой . Как исправить даное положение тоесть что бы при выводе на печать тоже отображалось 6 знаков после запятой . Версия 1С Предприятие 7.7
 
<!--QuoteBegin-Zab+5:07:2007, 10:51 -->
<span class="vbquote">(Zab @ 5:07:2007, 10:51 )</span><!--QuoteEBegin-->я понимаю, что модератор имеет техническую возможность посмеяться последним wink.gif
[snapback]71434" rel="nofollow" target="_blank[/snapback]​
[/quote]
я не буду прибегать к такой возможности.
<!--QuoteBegin-Zab+5:07:2007, 10:51 -->
<span class="vbquote">(Zab @ 5:07:2007, 10:51 )</span><!--QuoteEBegin-->человечка то интересует, где отваливаются 4 знака после запятой
[snapback]71434" rel="nofollow" target="_blank[/snapback]​
[/quote]
математика, школьный курс! бегом читать!
до округления имеем
А=1.232567
после Окр(А,2) получаем 1.230000
Ну и где тут что "отваливается" после запятой? А при выводе на печать 2 знака после запятой исключительно функцией Формат оставляются. Именно для этого я и рекомендовал пройтись отладчиком, дабы попасть в глФРМТ и увидеть процесс форматирования.
 
Для: Zab
Розобратся пітался и пітаюсь но для меня тяжело это дается так как курсы програм по 1С не проходил так пытаюсь розобратся своими силами
 
2 vitfil: к сожалению, школьного курса математики под рукой нет, но что-то не помню, чтоб там такое было. Зато есть 1С:Предприятие 7.7 и пункт меню Сервис- Табло, в котором: "Окр(1.232567,2) = 1.23" :D А вот, что делает глФРМТ я не знаю, могу только предполагать... Поэтому и предложил человеку самостоятельно посмотреть, что они делают.

2 Кеналое: не покладай рук, и воздастся ;)
 
Привет. Жизнь мне доставила удовольствие столкнуться с 1С, а позже даже стокнуться с программированием в 1С. В последнем как раз я ничего не понимаю пока. Сам по образованию бухгалтер, поэтому предметную область знаю даже очень хорошо. Посоветуйте с чего начинать по программированию ( программировать нужно участок расчета зарплаты ).
 
Я б на твоем месте взял документ начисления зарплаты, который есть у тебя в бух конфиге, сделал его копию, и начал доделывать то, что тебя в нем не устраивает. ИМХО, лучший метод учиться - это начать что-то делать. Если совсем нет опыта в программировании - всетки сходить на курсы, любые, по программированию, лучше, конечно, по 1С.
 
<!--QuoteBegin-Zab+18:07:2007, 11:21 -->
<span class="vbquote">(Zab @ 18:07:2007, 11:21 )</span><!--QuoteEBegin-->Я б на твоем месте взял документ начисления зарплаты, который есть у тебя в бух конфиге, сделал его копию, и начал доделывать то, что тебя в нем не устраивает. ИМХО, лучший метод учиться - это начать что-то делать. Если совсем нет опыта в программировании - всетки сходить на курсы, любые, по программированию, лучше, конечно, по 1С.
[snapback]72556" rel="nofollow" target="_blank[/snapback]​
[/quote]

хм - хороший вариант, спасибо за подсказку. Может мне подскажет кто-нибудь, как понимать делать все отчеты и поправки не в самой 1С , а через внешшнюю выгрузку... ( или что-то в этом роде - точно не помню ) :)
 
в конфигураторе, файл - новый - Внешний отчет(обработка)
 
Как правильно при создании отчета выводить Таблицу Значений и устонавливать в ней условия отбора. ( Нужно ли в форме вставлять таблицу, или же ее нужно формировать кодом , через СоздатьОбъект и Показать Таб. и др.)
Как правильно задать формулу кнопки (сформировать) в отчете - часто выбивает ошибку синтаксиса, ибо не находит что-то.
:) 0- уже пол дня мучаюсь с этим...
 
Такс с кнопкой я разобрался - не стоит в модуле удалять строки
// Процедура генерации запроса Сформировать.
Процедура Сформировать()
КонецПроцедуры
Да и таблицу не обязательно вносить в модуль.

Вопрос стоит теперь в следующем:
Как правильно сделать , чтобы в таблице отображались данные с справочника?
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Наименование = Справочник.КадрыПринятые.Наименование;
|Группировка Наименование все;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("ТаблицаЗначений");
// Создание колонки ТаблицыЗапросов
Таб.НоваяКолонка("Наименование","Справочник.КадрыПринятие.Наименование",26,0,"Наименование",56);
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Наименование
Таб.НоваяСтрока("Справочник.КадрыПринятые.Наименование");
Таб.ВыбратьСтроку("Справочник.КадрыПринятые.Наименование");
КонецЦикла;
ВыбСтрока=0;
// Вывод заполненной формы

Вопрос возник в следующем, немогу отобразить результаты запроса....... что-то пишу неправильно ( в тексте наклонным шрифтом) - немогу разобраться как привязать строку с результату запроса..
 
Все окончательно ситуацию разрулили:
1. Если Таблица нанесена на форме - невкоем случае не нада ее объявлять переменной в модуле, так как она уже объявлена. (зы: в Отладчике таблица помечается значком "+")
2. код вывода запроса в данном случае имеет вид: Таб.Наименование=Запрос.Наименование;

Перем Запрос, ТекстЗапроса; - объявление переменных, которые не объявлены в форме
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Наименование = Справочник.КадрыПринятые.Наименование;
|Группировка Наименование все;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
// Создание колонки ТаблицыЗапросов

Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Наименование
Таб.НоваяСтрока();
Таб.Наименование=Запрос.Наименование;

КонецЦикла;
ВыбСтрока=0;
КонецПроцедуры;
Таб.НоваяКолонка("Наименование");

// Вывод заполненной формы
 
Привет всем! Существует ли версия 1сПредприятие для обучения для нач.программистов? (Как) можно (ли) получить первое представление, не покупая полнофункциональную копию?
 
Есть учебная версия 1сПредприятие8. Есть смысл её брать, если придётся иметь дело с 7.7?
 
Если есть литература , то можешь любую версию брать . 1С8 - немного отличается от 7.7, хотя в общем все одинаково .....
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!