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

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

  Все выпуски  

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Тимошенко Дмитрий
Статус: Студент
Рейтинг: 390
∙ повысить рейтинг »
Владимир Лазурко
Статус: Профессионал
Рейтинг: 383
∙ повысить рейтинг »
М.Денис
Статус: 9-й класс
Рейтинг: 291
∙ повысить рейтинг »

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

Номер выпуска:1074
Дата выхода:23.08.2009, 19:35
Администратор рассылки:Владимир Лазурко, Профессионал
Подписчиков / экспертов:529 / 122
Вопросов / ответов:2 / 3

Вопрос № 171444: Результатом запроса внешней обработки (1С 8.1 УПП) являются все сформированные к выплате суммы по характеру выплаты. Но т.к. список большой (порядка 800 записей), хочу еще показать только те суммы, которые НЕ попадут в банке на лицевой счет работника...


Вопрос № 171447: Доброго времени суток Эксперты. Подскажите плз, как выдернуть данные из текстового поля (Фактический Адрес) и поместить это в поле Excel? Процедура Сформировать() ВходExcel = СоздатьОбъект("Excel.Application"); ВходExcel.Appli...

Вопрос № 171444:

Результатом запроса внешней обработки (1С 8.1 УПП) являются все сформированные к выплате суммы по характеру выплаты. Но т.к. список большой (порядка 800 записей), хочу еще показать только те суммы, которые НЕ попадут в банке на лицевой счет работника.
Как правильно сделать : на форму положть Переключатель с именем “ПоВсем”
- и если он будет включен, показывать все записи, попавшие в запрос (это у меня работает),
- в противном случае - только те, которые не понадут на лицевой счет работника в банке, (пустой <НомерЛицевогоСчета>) или <Пл_ВидЗарплатногоСчета> # <Пл_ВидЗарплатногоСчетаЗп> ?
- Реализовать это двумя запросами или одним запросом, который уже работает, а при формирования секции “Детали” анализировать состояние Переключателя “ПоВсем” ?
Если возможно, покажите, пожалуйста, кодом (я только пытаюсь программировать в 1С).
С уважением.

Отправлен: 18.08.2009, 12:00
Вопрос задал: Надежда Геннадьевна, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Maxim S. Orlov, Студент :
Здравствуйте, Надежда Геннадьевна.

Для решения Вашей задачи (для выбора "По всем") могу предложить сл., вариант:

Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата,
| ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо,
| ЗарплатаКВыплатеОрганизацийЗарплата.Сумма КАК Сумма,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка КАК ПлатежнаяВедомость,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.ХарактерВыплаты,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.СпособВыплаты,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Банк КАК БанкЗп,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Пл_ВидЗарплатногоСчета КАК Пл_ВидЗарплатногоСчетаЗп,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Пл_НомерОСБ КАК Пл_НомерОСБЗп,
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Пл_НомерФОСБ КАК Пл_НомерФОСБЗп,
| ЛицевыеСчетаРаботниковОрганизации.Банк,
| ЛицевыеСчетаРаботниковОрганизации.Ном ерЛицевогоСчета,
| ЛицевыеСчетаРаботниковОрганизации.Пл_НомерОСБ,
| ЛицевыеСчетаРаботниковОрганизации.Пл_НомерФОСБ,
| ЛицевыеСчетаРаботниковОрганизации.Пл_ВидЗарплатногоСчета
|ИЗ
| Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
| ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ЛицевыеСчетаРаботниковОрганизации.ФизЛицо
| И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Банк = ЛицевыеСчетаРаботниковОрганизации.Банк
| И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Пл_НомерОСБ = ЛицевыеСчетаРаботниковОрганизации.Пл_НомерОСБ
| И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Пл_ВидЗарплатногоСчета = ЛицевыеСчетаРаботниковОрганизации.Пл_ВидЗарплатногоСчета
|ГДЕ
| ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.ХарактерВыплаты = &H_vypl
| И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.СпособВыпл аты = &S_vypl
| И ДЕНЬ(ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата) = ДЕНЬ(&Дата1)
| И МЕСЯЦ(ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата) = МЕСЯЦ(&Дата1)
| И ГОД(ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата) = ГОД(&Дата1)";
Если Не ПоВсем Тогда
ТекстЗапроса = ТекстЗапроса + "
| И ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета <> &ПустаяСтрока
| И ЛицевыеСчетаРаботниковОрганизации.Пл_ВидЗарплатногоСчета <> &ПустаяСтрока";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|ИТОГИ
| СУММА(Сумма)
|ПО
| ОБЩИЕ";
Запрос.Текст = ТекстЗапроса;

Запрос.УстановитьПараметр("H_vypl", H_vypl);
Запрос.УстановитьПараметр("S_vypl", S_vypl);
Запрос.УстановитьПараметр("Дата1", Дата1);
Запрос.УстановитьПараметр("ПустаяСтрока", ""); - Что касается этой строчки , то справедливо следующее замечание, т.к. вы не указали тип дополнительных полей (ведь конфигурация у вас нетиповая), то я посчитал тип данных, хранимых в них "Строка".




-----
Не надо чинить то, что еще не сломалось .......

Ответ отправил: Maxim S. Orlov, Студент
Ответ отправлен: 21.08.2009, 18:20

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253444 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 171447:

    Доброго времени суток Эксперты.
    Подскажите плз, как выдернуть данные из текстового поля (Фактический Адрес) и поместить это в поле Excel?
    Процедура Сформировать()
    ВходExcel = СоздатьОбъект("Excel.Application");
    ВходExcel.Application.Workbooks.Open(НазваниеФайла);
    СпрКон = СоздатьОбъект("Справочник.Контрагенты");
    СпрКон.ВыбратьЭлементы();
    НомерСтроки = 1;
    Пока СпрКон.ПолучитьЭлемент()=1 Цикл
    ВходExcel.ActiveSheet.Cells(НомерСтроки,1).Value = СпрКон.Наименование;
    ВходExcel.ActiveSheet.Cells(НомерСтроки,2).Value = СпрКон.АдресДоставки;
    ВходExcel.ActiveSheet.Cells(НомерСтроки,3).Value = СпрКон.Рассылка;
    ВходExcel.ActiveSheet.Cells(НомерСтроки,4).Value = СпрКон.Телефоны;
    ВходExcel.ActiveSheet.Cells(НомерСтроки,5).Value = СпрКон.ЭлектронныйАдрес;
    (Тут все хорошо цепляется и выгружается, привязка к полю ввода и все норм. Но вот привязать это дело к тексту не удается, текст, как указанно выше Это ф актический адрес, типовой, как у любого физлица в прописке например)

    Сообщить("Выгружен " + Строка(СпрКон.Наименование));
    НомерСтроки = НомерСтроки + 1;
    КонецЦикла;
    ВходExcel.ActiveWorkbook.Close();
    ВходExcel.Quit();
    КонецПроцедуры

    Резать текст ненадо никак, нужно просто выдернуть строку, как она отображается в текстовом поле. Заранее благодарен.

    Отправлен: 18.08.2009, 14:05
    Вопрос задал: Mlexer, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает Anton Devitsin, Профессионал :
    Здравствуйте, Mlexer.

    Тут все просто - нет никаких текстовых полей! При работе по OLE все передаваемые данные должны иметь четкий размер!!! Иначе - нельзя - система не даст!

    Ответ отправил: Anton Devitsin, Профессионал
    Ответ отправлен: 18.08.2009, 18:22

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253361 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Шахрайчук Владимир Анатольевич, Специалист :
    Здравствуйте, Mlexer.
    Вопрос: реквизит Фактический Адрес периодический?
    Если да, то
    НужнаяДата=РабочаяДата() например
    ВходExcel.ActiveSheet.Cells(НомерСтроки,7).Value =СокрЛП(СпрКон.ФактическийАдрес.Получить(НужнаяДата));
    Замечание: если в конфигураторе установлена фиксированная длина для поля Телефоны, то поле является праводополненым пробелами и нужно писать
    ВходExcel.ActiveSheet.Cells(НомерСтроки,4).Value = СокрЛП(СпрКон.Телефоны);
    --Но вот привязать это дело к тексту не удается
    в 1С в справочниках СпрКон нет поля текстового типа, есть тип Строка (бывает фиксированное длины, бывает неограниченной, бывает периодической, бывает непериодической), в этом направлении не копайте. Но в этой строке может быть символ РазделительСтрок(),
    при попытке передать строку с этим символом ВходExcel откажется его принять. Тогда для удаления этого символа используйте процедуры
    Поз=Найти(ФактическийАдрес,РазделительСтрок());
    Если Поз>0 тогда
    Вывад= Сред(ФактическийАдрес,1,поз-1)+" "+Сред(ФактическийАдрес,Поз+1) или поз+2, проверьте на практике, я не помню, сколько байт РазделительСтрок() занимает. кажется, это стандартные CRLF.
    Также для удаления разделителястрок можно строку загрузить в СписокЗначений, а полученные значения уже будут без разделителя, и их можно будет передать в Эксель
    Сп.ИзстрокиСРазделителями(

    Ответ отправил: Шахрайчук Владимир Анатольевич, Специалист
    Ответ отправлен: 23.08.2009, 14:03

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253478 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.7 от 15.08.2009

    В избранное