Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 604
от 18.09.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 405, Экспертов: 56
В номере:Вопросов: 4, Ответов: 14


Вопрос № 101759: Здраствуйте! 1С П7.7 "Зарплата+Кадры" 2.3; Работник не отбыл полность отпуск и вышел на работу получив в зарплате плату за отработаные дни и за полностью отбытый отпуск, в следующем месяце ему из его зарплаты необходимо вычесть опла...
Вопрос № 101784: Здравствуйте, уважаемые эксперты. Начала разбираться с 1с 8.1, не получается подбор, в док. приходнаяНАкладная создала кнопку побдор, в поле док.приходная Накладная в табличной части ревизиту Материалы создала обработчик события обработкаВыбора, но ф...
Вопрос № 101799: Здравствуйте, У меня такая проблема так как опыт программирования в 1с небольшой то и вопросы соотвественно тупые прошу сильно не ругать :-)) Как записать периодические реквизиты в справочник и потом получить в отчете эти значения н...
Вопрос № 101860: Здравствуйте!! как в восьмерке написать число прописью, особенно для Казахстана (денежная единица - тенге) в семерке был специальный файл прописи а востмерке???...

Вопрос № 101.759
Здраствуйте!
1С П7.7 "Зарплата+Кадры" 2.3;
Работник не отбыл полность отпуск и вышел на работу получив в зарплате плату за отработаные дни и за полностью отбытый отпуск, в следующем месяце ему из его зарплаты необходимо вычесть оплату не неотбытого отпуска.
Как не в мешиваясь в конфигурацию это произвести

P.S. задаю вопрос в разделе для программиста так как не нашел раздела для 1С в разделе помощи по ПО.
Отправлен: 12.09.2007, 11:21
Вопрос задал: Woodli (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: svsrus
Здравствуйте, Woodli!

Зайдите в документ Начисление отпуска. Если период уже закрыт, нажмите "исправить", если еще не закрыт просто исправьте документ - укажите верные даты отпуска. Т.е. дата окончания будет дата, когда он вышел на работу. Остальное ЗиК сделает сама:)

Удачи!
Ответ отправил: svsrus (статус: 7-ой класс)
Ответ отправлен: 12.09.2007, 13:09
Оценка за ответ: 3
Комментарий оценки:
Это метод не срабатывает, программа выдает совсем не те сведения какие должны реально быть, поэтому хотелось бы знать может еще есть какие нибуть возможности вычесть необходимую сумму автоматизированно.


Вопрос № 101.784
Здравствуйте, уважаемые эксперты. Начала разбираться с 1с 8.1, не получается подбор, в док. приходнаяНАкладная создала кнопку побдор, в поле док.приходная Накладная в табличной части ревизиту Материалы создала обработчик события обработкаВыбора, но форма для выбора открывается а сам выбор не происходит ,как будто не видит проц ОбработкаВыбора, почему .....

Приложение:

Отправлен: 12.09.2007, 15:05
Вопрос задала: Fifina (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Никифоров Иван Петрович
Здравствуйте, Fifina!

Процедура Подбор(Кнопка)
ФормаПодбора=Справочники.Номенклатура.ПолучитьФормуВыбора(,ЭтаФорма);
ФормаПодбора.РежимВыбора=Истина;
ФормаПодбора.Открыть();
КонецПроцедуры

Процедура ОбработкаВыбора(ЗначениеВыбора,Источник)
НоваяСтрока=ЭтаФорма.ВладелецФормы.ЭтотОбъект.Материалы.Добавить();
НоваяСтрока.Материал=Номенклатура.Ссылка;
//ЭлементыФормы.Материалы.ТекущаяСтрока=НоваяСтрока;
КонецПроцедуры
Ответ отправил: Никифоров Иван Петрович (статус: 1-ый класс)
Ответ отправлен: 12.09.2007, 15:18
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ, но все без изменений,проц ОбработкаВыбора также не выполняется!

Отвечает: Яна
Здравствуйте, Fifina!
В типовой сделано так:
1. При нажатии на кнопку открывается форма обработки для выбора Номенклатуры
2. У табличной части со списком товаров есть событие Выбор.
3. В процедуре обработки события Выбор с помощью Оповестить передается сигнал о том, что выбор произошел в форму документа.

Советую сделать аналогично. Для этого почитайте в синтакс-помощнике про Оповестить.

Обработка Выбора не имеет отношения к подбору, ни малейшего, поэтому и не вызывается.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 12.09.2007, 17:09
Оценка за ответ: 5
Комментарий оценки:
Спасибо, все получилось!!!


Вопрос № 101.799
Здравствуйте,

У меня такая проблема так как опыт программирования в 1с небольшой то и вопросы соотвественно тупые прошу сильно не ругать :-))

Как записать периодические реквизиты в справочник и потом получить в отчете эти значения на определенный период, именно синтаксис интересует, я уже перелопатил всю книгу по 1С и описанием языка а ни как не могу понять одно из двух или книга слишком умная или я ...

Заранее спасибо
Отправлен: 12.09.2007, 17:07
Вопрос задал: Diamondes (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Никифоров Иван Петрович
Здравствуйте, Diamondes!

Установить:

ВашСправочник.ВашРеквизит.Установить(ВашаДата,ВашеЗначение);

или

ВашСправочник.ИспользоватьДату(ВашаДата,1);
ВашСправочник.ВашРеквизит=ВашеЗначение;

Получить:

ВашСправочник.ВашРеквизит.Получить(ВашаДата);
Ответ отправил: Никифоров Иван Петрович (статус: 1-ый класс)
Ответ отправлен: 12.09.2007, 17:17
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ

Отвечает: Андрей Тимофеев
Здравствуйте, Diamondes!
Нужно открыть ЖКК(Желто-красную книгу) и читать ее, читать, читать, читать, читать, читать, читать до тех пор пока не станет понятно!
И в случае с переодическими реквизитами все будет медленее чем если бы вы добавили еще один справочник и хранили в нем ваши показания счетчиков.
Так что вот так.

p.s. А за оценку в 3 я вовсе не в обиде ;-).
Ответ отправил: Андрей Тимофеев (статус: 7-ой класс)
Ответ отправлен: 12.09.2007, 17:19
Оценка за ответ: 4
Комментарий оценки:
Спасибо конечно читаю енту книгу точнее книги уже с утра

Отвечает: Sim_tm
Здравствуйте, Diamondes!
Было бы очень неплохо если бы вы указали версию используемой 1с-ки.
Предположу что вы используете 8-ую версию.
Переодических реквизитов справочников там нету (как собственно и констант). Для их задания используется переодический регистр сведений. Для вытягивния данных используйте следующий запрос:
"ВЫБРАТЬ
| КурсыВалютСрезПоследних.Курс,
| КурсыВалютСрезПоследних.Валюта
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, ) КАК КурсыВалютСрезПоследних"
Запрос.УстановитьПараметр("МоментВремени",ВашаДата)
Ответ отправил: Sim_tm (статус: 2-ой класс)
Ответ отправлен: 12.09.2007, 17:32
Оценка за ответ: 4
Комментарий оценки:
К сожалению 7.7 за участие 4

Отвечает: Владимир (1С)
Здравствуйте, Diamondes!

Для чтения периодических реквизитов справочников Вы можете использовать метод Получить(Дата). Пример в Приложении (1).

А чтобы установить значение реквизита на определенную дату используйте метод Установить(Дата, Значение). Пример в приложении (2).

А чтобы не указывать каждому реквизиту дату (например, реквизитов много и чтоб не пропустить установку даты для какого-то одного и не наломать дров), испольуйте метод ИспользоватьДату(Дата). Пример в Приложении (3).

Успехов! С уважением, Владимир.

Приложение:

Ответ отправил: Владимир (1С) (статус: 3-ий класс)
Ответ отправлен: 12.09.2007, 19:42
Оценка за ответ: 5
Комментарий оценки:
Отдельное спасибо за примеры

Отвечает: Elric
Здравствуйте, Diamondes!

Итак, строка в модуле Вашего документа:
УстановитьРеквизитСправочника(Абон,"НП",НачПок, ДатаДок);
Проверьте следующие пункты:
1. В справочнике абонентов в свойствах периодического реквизита НП должны стоять галочки Периодический и Изменяется Документами. Галочку Ручное изменение рекомендую снять.
2. В документе должен быть заполнен реквизит Абон!

Далее, чтобы выбрать данные о показаниях счетчика за определенный период нужно использовать следующую конструкцию:

ПП=СоздатьОбъект("Периодический");
ПП.ИспользоватьОбъект("НП",Абон);
ПП.ВыбратьЗначения(НачДата,КонДата);
Пока ПП.ПолучитьЗначение()=1 Цикл
// ПП.Значение -- значение счетчика
// ПП.ДатаЗнач -- дата показателя
КонецЦикла

Здесь я предположил, что переменная Абон ссылается на конкретного абонента.
---------
В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 12.09.2007, 20:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробное объяснение

Отвечает: Santi
Здравствуйте, Diamondes!

спр.Реквизит.Получить(Дата);
Ответ отправил: Santi (статус: 1-ый класс)
Ответ отправлен: 12.09.2007, 23:53
Оценка за ответ: 4
Комментарий оценки:
Спаси но был получен ответ раньше

Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Diamondes!

есть 2 способа

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

второй установить() и Получить()

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

или же после конструкции цены = создатьобъект("справочник.цены") использовать метод
цены.использоватьдату(датаконца) тогда в отцете можно просто цены.цена значение возмется на заданную дату.

если использовать запрос по период с дата1 по дата2 из справочника цены цена возьмется на дату2
Ответ отправил: Ромашов Евгений Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.09.2007, 05:07
Оценка за ответ: 4
Комментарий оценки:
Спасибо но был получен ответ раньше поэтому 4

Отвечает: DERL.KG
Здравствуйте, Diamondes!
пер=создатьобъект("Периодический");
спр=создатьобъект("Справочник.Номенклатура");
спр.Найтипонаименованию("Картофель");
пер.ИспользоватьОбъект("Цена",спр.ТекущийЭлемент());
пер.выбратьзначения();
пока пер.получитьЗначение()=1 цикл
сообщить(""+пер.ДатаЗнач+" Значение: "+пер.Значение);
КонецЦикла;
Ответ отправил: DERL.KG (статус: 5-ый класс)
Ответ отправлен: 13.09.2007, 07:20
Оценка за ответ: 4
Комментарий оценки:
Спасибо


Вопрос № 101.860
Здравствуйте!!
как в восьмерке написать число прописью, особенно для Казахстана (денежная единица - тенге) в семерке был специальный файл прописи а востмерке???
Отправлен: 13.09.2007, 08:31
Вопрос задал: BigHard (статус: Студент)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Владимир (1С)
Здравствуйте, BigHard!
Всё сделайте по аналогии с русским и английским, только в переменную локализации впишите казахский язык:

Пример 1. Вывести по-русски:
ПараметрыПредметаИсчисления = "целая, целых, целых, ж, сотая, сотой, сотых, ж, 2"
ФорматнаяСтрока = "Л=ru_RU; ДП=Истина";
Сообщить(ЧислоПрописью(ВыводимоеЧисло, ФорматнаяСтрока, ПараметрыПредметаИсчисления));

Пример 2. Вывести по-английски с указанием дробной части:
ФорматнаяСтрока = "Л=en_US";
ПараметрыПредметаИсчисления = "dollar, dollars, cent, cents, 2";
Сообщить(ЧислоПрописью(Сумма, ФорматнаяСтрока, ПараметрыПредметаИсчисления));

Так же сделайте и для казахского. Возможно, нужно будет добавить казахский язык, если он не был установлен при установке (Панель управления - Устанвка и удаление программ - 1С Предприятие 8.0 - Добавить или изменить компоненты)

Успехов!
С уважением, Владимир.
Ответ отправил: Владимир (1С) (статус: 3-ий класс)
Ответ отправлен: 13.09.2007, 08:47
Оценка за ответ: 5

Отвечает: Ромашов Евгений Николаевич
Здравствуйте, BigHard!

справочник валют посмотри там по моему можно задавать
Ответ отправил: Ромашов Евгений Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.09.2007, 09:04
Оценка за ответ: 2
Комментарий оценки:
И как это сделать в собственной конфе, гда даже такого справочника нет??? посмотрите предыдущий ответ!

Отвечает: Яна
Здравствуйте, BigHard!

ЧислоПрописью (NumberInWords)
Синтаксис:
ЧислоПрописью(<Число>, <Форматная строка>, <Параметры предмета исчисления>)
Параметры:
<Число> (обязательный)
Тип: Число. Число, которое необходимо преобразовать в строку прописью.
<Форматная строка> (необязательный)
Тип: Строка. Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США). Все доступные коды локализации для преобразования числа в пропись указаны в файле loclinfo.txt, входящем в комплект поставки системы 1С:Предприятие.
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина.
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина.
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.
<Параметры предмета исчисления> (необязательный)
Тип: Строка. Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского языка формат следующий: "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где
"рубль, рубля, рублей, м" - предмет исчисления целой части, а "копейка, копейки, копеек, ж, 2" - дробная часть (может отсутствовать).
рубль - единственное число именительный падеж;
рубля - единственное число винительный падеж;
рублей - множественное число винительный падеж;
м - мужской род (ж - женский род);
копейка - единственное число именительный падеж;
копейки - единственное число винительный падеж;
копеек - множественное число винительный падеж;
ж - женский род (м - мужской род);
2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Для английского языка формат следующий: "dollar, dollars, cent, cents, 2", где "dollar, dollars" - предмет исчисления целой части, а "cent, cents, 2" - дробная часть.
dollar - единственное число;
dollars - множественное число;
cent - единственное число;
cents - множественное число;
2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Ознакомиться со всеми доступными вариантами форматной строки для преобразования числа в пропись можно в файле loclinfo.txt, входящим в комплект поставки системы 1С:Предприятие.
Значение по умолчанию: Пустая строка
Возвращаемое значение:
Тип: Строка. Представление числа прописью.
Описание:
Формирует представление числа прописью в соответствии с заданными форматной строкой и параметрами предмета исчисления.
Пример:
// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);

// Результат вычисления:
// "Две тысячи триста сорок один доллар пятьдесят шесть центов"
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 13.09.2007, 10:49


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.59 от 17.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное