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

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

  Все выпуски  

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

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

Анатолий Ясень
Статус: Студент
Рейтинг: 66
∙ повысить рейтинг >>
Тимошенко Дмитрий
Статус: 6-й класс
Рейтинг: 45
∙ повысить рейтинг >>
Владимир Лазурко
Статус: Практикант
Рейтинг: 25
∙ повысить рейтинг >>

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

Выпуск № 997
от 24.04.2009, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 417, Экспертов: 38
В номере:Вопросов: 1, Ответов: 2

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

Вопрос № 165307: Здравствуйте, уважаемые эксперты. Пытаюсь внести с помощью XBase данные в табличную часть формы документа. Но вот что-то с кодом не ладится. Версия самописно-переписанная ТИС под 1С Предприятие 7.7 Есть в dbf-файле четыре колонки со значениями: N...


Вопрос № 165.307
Здравствуйте, уважаемые эксперты. Пытаюсь внести с помощью XBase данные в табличную часть формы документа. Но вот что-то с кодом не ладится. Версия самописно-переписанная ТИС под 1С Предприятие 7.7
Есть в dbf-файле четыре колонки со значениями: NomNumber, KOLVO, PRICE, SUMM. В самом документе в 1С, а именно РасходнаяНакладная есть столбцы с идентификаторами в которые нужно импортировать данные: КвоЗаказПокупателя (в этот столбец необходимо внести значения из колонки в dbf-файле KOLVO); Кво (-KOLVO);ЦенаСНДС (-PRICE); СуммаСНДС (-SUMM). И еще такой нюанс: имеется некая колонка в dbf -файле NomNumber - обозвал его как бы номенклатурным номером, а именно код из справочника ТМЦ под которым имеется название того или иного ТМЦ. Вопрос стоит следующий - считывать этот NomNumber из dbf-ника, и на основе его чтобы выбиралось наименование ТМЦ из справочника и подставлялось в табличную часть формы документа. Ниже привожу код, который привязан к созданной на форме кнопке, ну ни в как ую не желающий функционировать. Благодарю за внимание и очень надеюсь на Вашу помощь.

Приложение:

Отправлен: 19.04.2009, 01:53
Вопрос задал: Greendzhola (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Anton Devitsin
Здравствуйте, Greendzhola!

Извините, но как мне видится из вашего кода - он не делает то что вы описывали в задании. Я попробую изменить вашу процедуру для получения ожидаемого результата.

Обратите внимание - находит ли процедура сам файл.
создаются ли строки в документе Метод - НоваяСтрока()

Если процедура работает в модуле формы документа - вам подойдет мой вариант.
Если же документ создается неявно - тогда обратите внимание на создание новых строк и запись в документе.
Обязательно при обращении к любым внешним файлам - проверяйте открыт ли он. Это позволит избежать некоторой некорректности по отношению к пользователю.

Других ошибок быть не должно.

Приложение:

Ответ отправил: Anton Devitsin (статус: 3-й класс)
Ответ отправлен: 19.04.2009, 03:08

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

    Оценка за ответ: 3
    Комментарий оценки:
    Немного малый сдвиг - в строках заполняется только нумерация, колонки которые должны заполняться из импортируемого файла - пустые.
    Видоизменение на:

    "Если ДБФ.ОткрытьФайл(КаталогИБ()+"ObChKP.dbf")=0 Тогда
    Сообщить("Файл не найден");
    Возврат;
    КонецЕсли;"

    приводит к такому сообщению:

    "Если ДБФ.ОткрытьФайл(КаталогИБ()+"ObChKP.dbf")=0 Тогда
    {Документ.РасходнаяНакладная.Форма.Модуль(3234)}: Обращение к процедуре объекта как к функции (ОткрытьФайл)"


    Отвечает: Анатолий Ясень
    Здравствуйте, Greendzhola!

    В дополнение к первому ответу, Вам нужно добавить код поиска элементов справочника "Номенклатура" по коду, указанному в поле "NomNumber"

    Приложение:

    ---------
    Только вперед!

    Ответ отправил: Анатолий Ясень (статус: Студент)
    Ответ отправлен: 19.04.2009, 10:13

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

    Оценка за ответ: 3
    Комментарий оценки:
    Попытался довнести с учетом ваших пожеланий и поправив на справочник из самой конфигурации. Общий код получился следующий:

    "Процедура ИмпЧКП()

    ///=======Импортируем в табличную часть Расходной накладной обработанные данные=======
    ДБФ = СоздатьОбъект("Xbase");
    ДБФ.ОткрытьФайл(КаталогИБ()+"ObChKP.dbf");

    ДБФ.ПоказыватьУдаленные(0);
    //Для Ном=1 По ДБФ.КоличествоЗаписей() Цикл
    // ДБФ.Перейти(Ном);
    ДБФ.Первая();
    Пока ДБФ.ВКонце() = 0 Цикл
    // вставить в тело цикла
    КодТМЦ = ДБФ.NomNumber;
    Если ТМЦ.НайтиПоКоду(КодТМЦ, 0) = 1 Тогда
    НоваяСтрока(); // Новую строку добавляем только если найден товар
    ТМЦ = ТМЦ.ТекущийЭлемент();
    Иначе
    Сообщить("Товар с кодом "+КодТМЦ+" не найден!");
    Продолжить; // эту строку пропускаем, ничего не делаем
    КонецЕсли;
    // РНКП.НомНоме р=ДБФ.NomNumber;
    НоваяСтрока();
    КвоЗаказПокупатель=ДБФ.KOLVO;
    Кво=ДБФ.KOLVO;
    ЦенаСНДС=ДБФ.PRICE;
    СуммаСНДС=ДБФ.SUMM;
    ДБФ.Следующая();
    КонецЦикла;
    ДБФ.ЗакрытьФайл();
    КонецПроцедуры"

    Однако при запуске процедуры путем нажатия на кнопку выводит сообщение:

    "Если ТМЦ.НайтиПоКоду(КодТМЦ, 0) = 1 Тогда
    {Документ.РасходнаяНакладная.Форма.Модуль(3241)}: Объект не может быть перепозиционирован!"

    Естественно заполнение пусть дальше только нумерации не отрабатывает.


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

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

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

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

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

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


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

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

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

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

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

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


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное