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

  • Автор темы Mr_Fluke
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Z

Zab

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

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

Guest

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

Код:
Процедура Печать(БыстраяПечать=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,,);
Таб.Показать("ПЕЧАТЬ: Счет - фактура","");
КонецЕсли;
КонецПроцедуры
 
V

vitfil

Для: Кеналое
В вашем коде есть ссылки на глобальный модуль. Необходимо еще и его привести тут и заработать бан. А пока - просто предупреждение (повышение) и рекомендация пройтись по коду отладчиком (самостоятельно) и выяснить, где формируется интересующая вас сумма.
 
Z

Zab

Код:
ИтСуммаСНДС	 = Окр(ИтСуммаСНДС,	 2);
ПечИтСумма = глФРМТ(ИтСуммаТары,Валюта,0);
думается мне, форматирование происходит в одной, либо в обеих функциях, и аналогичных по коду. находится они могут как в текущем, так и в глобальном модуле. Смотри их. Хотя, меня заинтересовало, я их заметил просто пролистывая твой код, а ты его вообще смотрел? Разобраться пытался?
 
V

vitfil

<!--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:
Да особенно широко для форматирования строк используется функция Окр(...)!
 
Z

Zab

vitfil, а почитать исходный пост? :) человечка то интересует, где отваливаются 4 знака после запятой. А отваливаться они могут как в одной, так и в другой ;) :lol: (я понимаю, что модератор имеет техническую возможность посмеяться последним :lol: )
ВОПРОСИК? В документе ( счет, расходная накл.,налоговая ) в графе цена после запятой стоит 6 знаков , а при выводе на печать в этой же графе 2 знака после запятой . Как исправить даное положение тоесть что бы при выводе на печать тоже отображалось 6 знаков после запятой . Версия 1С Предприятие 7.7
 
V

vitfil

<!--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 знака после запятой исключительно функцией Формат оставляются. Именно для этого я и рекомендовал пройтись отладчиком, дабы попасть в глФРМТ и увидеть процесс форматирования.
 
G

Guest

Для: Zab
Розобратся пітался и пітаюсь но для меня тяжело это дается так как курсы програм по 1С не проходил так пытаюсь розобратся своими силами
 
Z

Zab

2 vitfil: к сожалению, школьного курса математики под рукой нет, но что-то не помню, чтоб там такое было. Зато есть 1С:Предприятие 7.7 и пункт меню Сервис- Табло, в котором: "Окр(1.232567,2) = 1.23" :D А вот, что делает глФРМТ я не знаю, могу только предполагать... Поэтому и предложил человеку самостоятельно посмотреть, что они делают.

2 Кеналое: не покладай рук, и воздастся ;)
 
J

jcnby

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

Zab

Я б на твоем месте взял документ начисления зарплаты, который есть у тебя в бух конфиге, сделал его копию, и начал доделывать то, что тебя в нем не устраивает. ИМХО, лучший метод учиться - это начать что-то делать. Если совсем нет опыта в программировании - всетки сходить на курсы, любые, по программированию, лучше, конечно, по 1С.
 
J

jcnby

<!--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С , а через внешшнюю выгрузку... ( или что-то в этом роде - точно не помню ) :)
 
Z

Zab

в конфигураторе, файл - новый - Внешний отчет(обработка)
 
J

jcnby

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

jcnby

Такс с кнопкой я разобрался - не стоит в модуле удалять строки
// Процедура генерации запроса Сформировать.
Процедура Сформировать()
КонецПроцедуры
Да и таблицу не обязательно вносить в модуль.

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

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

Вопрос возник в следующем, немогу отобразить результаты запроса....... что-то пишу неправильно ( в тексте наклонным шрифтом) - немогу разобраться как привязать строку с результату запроса..
 
J

jcnby

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

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

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

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

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

// Вывод заполненной формы
 
Y

Yewgeniy

Привет всем! Существует ли версия 1сПредприятие для обучения для нач.программистов? (Как) можно (ли) получить первое представление, не покупая полнофункциональную копию?
 
Y

Yewgeniy

Есть учебная версия 1сПредприятие8. Есть смысл её брать, если придётся иметь дело с 7.7?
 
J

jcnby

Если есть литература , то можешь любую версию брать . 1С8 - немного отличается от 7.7, хотя в общем все одинаково .....
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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