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

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

  Все выпуски  

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


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

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

Выпуск № 340
от 06.11.2006, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 276, Экспертов: 35
В номере:Вопросов: 5, Ответов: 11


Вопрос № 60781: Здравствуйте! 1С 7.7 Комплекс На счете 90.1, 90.2 и т.д. ведется аналитические учет в разрезе видов номенклатуры: товар, продукция, полуфабрикат, услуга, работа, посредн. услуга, услуга (ЕНВД), материал. Это все стандартно, так и бы ло по умолчан...
Вопрос № 60808: Здраствуйте уважаемые эксперты 1С! Извините, если вопрос покажется глупым. Как мне отформатировать параметр, чтобы цена в печатной форме выводилась в виде: 15,00. ..
Вопрос № 60887: Здравствуйте. головоломка такая: 1с7.7 работает ЗапуститьПриложение("Winword.exe"); работает ЗапуститьПриложение("notepad.exe c: empmoe.rtf"); не работает ЗапуститьПриложение("Win...
Вопрос № 60889: Вопрос для опытного программиста простой, но не для меня :-) Вопрос: 1. программно создать папку в справочнике «Контрагенты», проверить на наличие этой папки 2. импортировать из dbf файла данные в созданную папку, при импорте проверить н...
Вопрос № 60891: Глубокоуважаемые господа эксперты! Надо перенести (версия 7.7) из конфигурации "Бухгалтерия" в конф. "ТиС" справочники "Контрагенты" (и подчинённые "Договоры" и "Расчётные счета") и "Номенкла...

Вопрос № 60.781
Здравствуйте! 1С 7.7 Комплекс
На счете 90.1, 90.2 и т.д. ведется аналитические учет в разрезе видов номенклатуры: товар, продукция, полуфабрикат, услуга, работа, посредн. услуга, услуга (ЕНВД), материал. Это все стандартно, так и бы ло по умолчанию в конфигурации. Мне же нужно добавить свои виды, допустим 5 видов услуг. Как это сделать? Если прямо добавить в виды номенклатуры, в виды долга, то приходится многое переделывать в модулях программы, а если будет обновление, то ведь это надо все заново перелопатить. Как быть?

Вариант (оцените его):
Добавить в табличную часть документа (допустим реализация ТМЦ), реквизит "ВидН", сделать его невидимым, при выборе номенклатуры (по номенклатуре можно определить какого вида услуга) заполнять данный реквизит. В справочнике проводок, указать чтобы в качестве субконто бралось значение данного реквизита. Должно работать. НО!!! Как себя поведет документ "Закрытие месяца"????
Отправлен: 31.10.2006, 15:13
Вопрос задал: Munster (статус: 5-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Зайцев Александр
Здравствуйте, Munster!
Тем что вы добавите в табличную часть еще один реквизит смысла нет. поскольку вид услуг и так можно определить как Номенклатура.ВидНоменклатуры.
Насколько я помню счета 90.1, 90.2 и т.д. в качестве субконто берут значение из перечисления ВидыНоменклатур, так что если в добавите в перечисление ваши виды услуг, проводки будут вестись соответственно в разрезе субконто ВидНоменклатуры с значением выших видов услуг (ес-но надо в номенклатуре указывать в качестве ВидНоменклатуры ваш вид услуг, который вы добавите в перечисление)
Ответ отправил: Зайцев Александр (статус: 8-ой класс)
Ответ отправлен: 01.11.2006, 07:14
Оценка за ответ: 4
Комментарий оценки:
Дело как раз в том что значением субконто на 90-х счетах является перечисление ТипыНоменклатуры, а не ВидыНоменклатуры, это два разных перечисления, у элементов справочника Номенклатура указывается ВидНоменклатуры.


Вопрос № 60.808
Здраствуйте уважаемые эксперты 1С! Извините, если вопрос покажется глупым. Как мне отформатировать параметр, чтобы цена в печатной форме выводилась в виде: 15,00.
Отправлен: 31.10.2006, 20:18
Вопрос задал: Darina (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

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

Если именно с запятой-разделителем, то
Цена #Ч.2,
(либо #Ч19.2, если известно что итоговая строка будет 19 символов)
Если же устраивает вариант с дробной точкой, то можно без замыкающей запятой
Цена #Ч.2
Более подробно можно посмотреть в описании системной функции Формат()
---------
Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Практикант)
Ответ отправлен: 31.10.2006, 21:23
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Да! бывает и такое... вчера пробовала Цена #Ч.2, не получалось, а сегодня всё ОК! Извините...

Отвечает: Зайцев Александр
Здравствуйте, Darina!

Формат(<?>,)
Синтаксис:
Формат(<Параметр>,<Форматная_строка>)
Назначение:
Возвращает строку с результатом форматирования выражения по заданной форматной строке.
Параметры:
<Параметр> - форматируемое выражение,
<Форматная_строка> - форматная строка.
Форматная строка имеет вид:
для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч);
для денежных величин - 'NSMH' (в русском регистре - 'ЧПДС');
для строк - 'Sn' (в русском регистре - 'Сn');
для дат - 'DПодстрокаФормата' (в русском регистре вместо D - Д), где
ПодстрокаФормата может быть вида:
DDMMYY (ДДММГГ), дата в виде - ДД.ММ.ГГ;
DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ;
DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ;
(0)DDMMMMYYYY ((0)ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.
MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ;
MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ;
QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ;
QQQQYY (ККККГГ), дата в виде - N квартал ГГ;
YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи.
Замечание:
Для чисел: наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка). Пример: ''Ч015.2'';
Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком. Пример: ''Ч-17.2''.;
Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций.
Если в форматной строке указано ''(0)'', то данная последовательность символов должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''. Например: Формат(123.15, ''Ч (0)10.2'') = 0000123.15;
Подробнее см. в документации, глава 'Системные процедуры и функции'
Ответ отправил: Зайцев Александр (статус: 8-ой класс)
Ответ отправлен: 01.11.2006, 07:18
Оценка за ответ: 4
Комментарий оценки:
Легко скопировать из документации (которая у меня тоже есть), а ответить просто...

Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Darina!

Формат(ВашеЧисло, "Ч015.2." + РаздТриад); //РаздТриад - разделитель триад

Вот полное описание:
Формат(<?>,)
Синтаксис:
Формат(<Параметр>,<Форматная_строка>)
Назначение:
Возвращает строку с результатом форматирования выражения по заданной форматной строке.
Параметры:
<Параметр> - форматируемое выражение,
<Форматная_строка> - форматная строка.
Форматная строка имеет вид:
для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч);
для денежных величин - 'NSMH' (в русском регистре - 'ЧПДС');
для строк - 'Sn' (в русском регистре - 'Сn');
для дат - 'DПодстрокаФормата' (в русском регистре вместо D - Д), где
ПодстрокаФормата может быть вида:
DDMMYY (ДДММГГ), дата в виде - ДД.ММ.ГГ;
DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ;
DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ;
(0)DDMMMMYYYY ((0)ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.
MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ;
MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ;
QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ;
QQQQYY (ККККГГ), дата в виде - N квартал ГГ;
YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи.
Замечание:
Для чисел: наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка). Пример: ''Ч015.2'';
Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком. Пример: ''Ч-17.2''.;
Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций.
Если в форматной строке указано ''(0)'', то данная последовательность символов должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''. Например: Формат(123.15, ''Ч (0)10.2'') = 0000123.15;
Ответ отправил: Краюшкин Игорь Валерьевич (статус: 5-ый класс)
Ответ отправлен: 01.11.2006, 08:03

Отвечает: ATan
Здравствуйте, Darina!
Если ты выводишь число непосредственно в ячейку таблицы, именно число, то в поле дописывай после числа формат #Ч15.2, первое число - это количество знаков всего, второе точность. Если ли же ты формируешь выражение в теле программы до вывода в таблицу
а его уже целиком всталяешь то надо использовать функцию формат(Сумма,"Ч15.2").
Примеры:
Первый случай - Сумма#Ч15.2(формула ячейки в таблице).
Второй случай - СокрЛП(Формат(Сумма,"Ч15.2")).

Удачи.
Ответ отправил: ATan (статус: 1-ый класс)
Ответ отправлен: 01.11.2006, 08:37

Отвечает: Сергей
Здравствуйте, Darina!
В синаткс-помощнике про это очень подробно написано:
Формат(<?>,)
Синтаксис:
Формат(<Параметр>,<Форматная_строка>)
Назначение:
Возвращает строку с результатом форматирования выражения по заданной форматной строке.
Параметры:
<Параметр> - форматируемое выражение,
<Форматная_строка> - форматная строка.
Форматная строка имеет вид:
для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч);
для денежных величин - 'NSMH' (в русском регистре - 'ЧПДС');
для строк - 'Sn' (в русском регистре - 'Сn');
для дат - 'DПодстрокаФормата' (в русском регистре вместо D - Д), где
ПодстрокаФормата может быть вида:
DDMMYY (ДДММГГ), дата в виде - ДД.ММ.ГГ;
DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ;
DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ;
(0)DDMMMMYYYY ((0)ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.
MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ;
MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ;
QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ;
QQQQYY (ККККГГ), дата в виде - N квартал ГГ;
YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи.
Замечание:
Для чисел: наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка). Пример: ''Ч015.2'';
Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком. Пример: ''Ч-17.2''.;
Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций.
Если в форматной строке указано ''(0)'', то данная последовательность символов должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''. Например: Формат(123.15, ''Ч (0)10.2'') = 0000123.15;
Подробнее см. в документации, глава 'Системные процедуры и функции'
Ответ отправил: Сергей (статус: 8-ой класс)
Ответ отправлен: 01.11.2006, 08:58

Отвечает: Шутяев Игорь
Здравствуйте, Darina!

В 77

Формат(ВашеЧисло,"Ч12.2, .")
Здесь Ч - числовой (формат)
12 - общая длина поля
2 - число десятичных цифр
, - знак отделеняия дробной части
В конце советую ставить пробел и любой символ (у меня точка), при этом триады (тысячи) будут разделяться пробелом: 12 200,22
Ответ отправил: Шутяев Игорь (статус: 3-ий класс)
Ответ отправлен: 01.11.2006, 09:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Всё было понятно, но почему не получалось :-)


Вопрос № 60.887
Здравствуйте.
головоломка такая: 1с7.7

работает
ЗапуститьПриложение("Winword.exe");

работает
ЗапуститьПриложение("notepad.exe c: empmoe.rtf");

не работает
ЗапуститьПриложение("Winword.exe c: empmoe.rtf");

как запустить word с файлом и как определить в 1с что он закрыт,когда он будет закрыт
Отправлен: 01.11.2006, 11:56
Вопрос задал: Olov11 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

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

Как вариант, можно указать не "Winword.exe c: empmoe.rtf", а полный путь к файлу Winword.exe (у меня, например, "D:Program FilesMicrosoft OfficeOFFICE11WINWORD.EXE c: empmoe.rtf" работает безупречно)
Отследить закрытие ворда Вы при этом не сможете.

Второй вариант -- открыть документ как объект OLE
Ворд=СоздатьОбъект("Word.Application");
Ворд.visible=1;
Ворд.documents.Open("c:kvit.rtf");
Теперь им можно управлять (при желании) прямо из 1С
---------
Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Практикант)
Ответ отправлен: 01.11.2006, 13:29


Вопрос № 60.889
Вопрос для опытного программиста простой, но не для меня :-)
Вопрос:
1. программно создать папку в справочнике «Контрагенты», проверить на наличие этой папки
2. импортировать из dbf файла данные в созданную папку, при импорте проверить на наличие аналогичной записи в папке
Отправлен: 01.11.2006, 12:17
Вопрос задал: Erik (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зайцев Александр
Здравствуйте, Erik!
1.
спр = создатьОбъект("Справочник.Контрагенты");
если спр.НайтиЭлемент(<данные для проверки>) = 0 тогда
спр.НоваяГруппа();
спр.Наименование = ...
...
спр.записать;
конецесли;
...
2. Подключает XBase и импортируете данные
dbf = создатьОбъект("XBase");
...
спр.использоватьродителя(<СозданнаяГруппа>);
если (спр.НайтиЭлемент(<Полученный из базы данных объект>) = 0) или (спр.Родитель = (<СозданнаяГруппа>)) тогда
спр.новый
и т.д.

Примерно так
Ответ отправил: Зайцев Александр (статус: 8-ой класс)
Ответ отправлен: 01.11.2006, 12:51

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

Дополню ответ от Зайцева Александра.
Нужно сначала определиться, каким образом Вы будете идентифицировать группы и элементы справочника Контрагенты. По коду, по наименованию, по значению какого-то специального реквизита?
Если решили, что идентификация по коду, то проверяем сужествование элемента (или группы) справочника методом НайтиПоКоду(), а не НайтиЭлемент() как было предложено Зайцевым Александром. Если идентификация по наименованию -- применяем метод НайтиПоНаименованию(). Если по реквизиту -- соответственно НайтиПоРеквизиту().
Что касается того, как записать элемент в нужную группу, то это можно сделать двумя способами.

1. При создании элемента (после вызова метода Новый()) просто присвоить значение группы атрибуту Родитель. Например,
Спр.Родитель=Группа;

2. Перед созданием элемента (непосредственно до вызова метода Новый()) вызвать метод ИспользоватьРодителя(). Например,
Спр. ИспользоватьРодителя(Группа);
Спр.Новый();
---------
Мирный атом в КАЖДЫЙ дом!
Ответ отправил: Elric (статус: Практикант)
Ответ отправлен: 01.11.2006, 13:39


Вопрос № 60.891
Глубокоуважаемые господа эксперты!
Надо перенести (версия 7.7) из конфигурации "Бухгалтерия" в конф. "ТиС" справочники "Контрагенты" (и подчинённые "Договоры" и "Расчётные счета") и "Номенклатура". Может, где есть готовые обработки?
Заранее спасибо.
Отправлен: 01.11.2006, 12:23
Вопрос задал: P_Tatarinov (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зайцев Александр
Здравствуйте, P_Tatarinov!
Есть универсальные обработки на
1c.proclub.ru
http://soft.mail.ru/program_page.php?grp=30518
http://noroof.bip.ru/prog/1c/UniDemo.zip
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=5077
На диске ИТС есть Tranref.ert
Ответ отправил: Зайцев Александр (статус: 8-ой класс)
Ответ отправлен: 01.11.2006, 12:57


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное