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

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

  Все выпуски  

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 734
от 20.02.2008, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 385, Экспертов: 50
В номере:Вопросов: 3, Ответов: 6

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


Вопрос № 123117: День добрый! Подскажите, пожалуйста, что не так в этом коде. Выбирает только первую строку из журнала. Если не прерывать цикл - то вообще ничего, кроме сообщения не выводит. Зараннее извиняюсь, может вопрос тупой. Но как-то трудно для меня понима...
Вопрос № 123230: Здравствуйте эксперты. Подскажите пожалуйста как в dbf-файл перенести дату со временем. Я прописала код как в приложении, выгружаю все в файл, потом открыла через Excel этот файл и проверила, там те пораметры, которые у меня были в формате Дата+в...
Вопрос № 123239: В общих таблицах (ТОРГ-12) вбивала руками дату и фамилию (1000 накладных в день). При сохранении конф - не сохраняется. В других таблицах (общих) сохраняется прекрасно. что это может быть?...

Вопрос № 123.117
День добрый! Подскажите, пожалуйста, что не так в этом коде. Выбирает только первую строку из журнала. Если не прерывать цикл - то вообще ничего, кроме сообщения не выводит.
Зараннее извиняюсь, может вопрос тупой. Но как-то трудно для меня понимается логика 1С-программ =))

Приложение:

Отправлен: 14.02.2008, 14:27
Вопрос задал: stahh (статус: 4-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 17)

Отвечает: Коровин Александр
Здравствуйте, stahh!
Оператор "Прервать" лишний, цикл будет продолжаться, пока есть выбранные документы.

Ответ отправил: Коровин Александр (статус: 1-ый класс)
Ответ отправлен: 14.02.2008, 14:41

Отвечает: Dmitry Stashenko
Здравствуйте, stahh!

Давайте сразу расставим точки над "и". Во-первых, мы выбираем не строки журнала, а документы, принадлежащие (или не принадлежащие) журналу. Во-вторых, ИспользоватьЖурнал() уместно использовать (простите за тавтологию) только в том случае, когда мы выбираем из одного журнала все принадлежащие ему виды документов, а поскольку мы выбираем конкретный вид документа (ФормированиеБригады), то ИспользоватьЖурнал() вовсе необязательно (т.е. если бы у нас в Журнал.УчетТранспорта входили скажем Документ.ФормированиеБригады и, например, Документ.ТТН, то тогда Док = СоздатьОбъект("Документ"); Док.ИспользоватьЖурнал("УчетТранспорта") позволил бы выбрать оба вида документов из журнала, а так мы выбираем конкретный вид документа, и нам не важен журнал, поскольку один документ принадлежит не более чем одному журналу. В-третьих, поскольку у вас стоит Прервать, то цикл выбирает только один документ, и в зависимости от того, совпадает ли в этом документе Маши на и Машина в текущем документе, выдает либо Сообщить() с заполнением реквизитов текущего документа, либо Предупреждение(). Это логично только в том случае, если в один день может быть создан только один Документ.ФормированиеБригады (не на машину один, а вообще один, если же один на машину, то Прервать надо поставить в ветке условия Если Машина=Док.Машина), а все остальные надо игнорировать. Да и то, не факт, что именно первый документ в выборке будет нужным. Причем, при сравнении Машина = Док.Машина, оба реквизита обязаны быть одного типа. И вы пишите, что кроме сообщения (или предупреждения?) ничего не выводит. А что собственно должно еще выводить? Имеете в виду, что должно заполнить реквизиты "Водитель", "грузчик_1", "грузчик_2"? Так может проблема в том, что не выполняется условие Машина = Док.Машина? И еще, если Прервать убрать, и цикл выберет все документы за ТекущуюДату, реквизиты "Водитель" и т.д. заполнятся из последнег о документа в выборке, в котором Машина = Док.Машина. Это так и должно быть? Или все же предполагается, что на одну машину создается не больше одного документа ФормированиеБригады?
Ответ отправил: Dmitry Stashenko (статус: Студент)
Ответ отправлен: 14.02.2008, 21:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо что не оставляете мои вопросы без внимания =))

Отвечает: Сергей Максименко [Elric]
Здравствуйте, stahh!

Вы сказали о том, что происходит, но как-то забыли упомянуть о том, что должно происходить вместо этого. Ну, что ж, будем исходить из того, что известно...
Сначала о том, что у Вас происходит сейчас.
Формируется выборка документов за текущий день, получается первый документ из выборки, проверяется совпадает ли его Машина с нужной (с Ваших слов, совпадает), в случае совпадения выводится сообщение и присваиваются значения Водитель, Грузчик_1, Грузчик_2 данными из полученного документа (в случае несовпадения выводится предупреждение и присваиваются пустые строки), после чего цикл по выборке прерывается командой Прервать и все остальные документы игнорируются.
Если уберете команду Прервать, будут проверены все остальные документы, и по каждому из них будет выдаваться либо сообщение, либо предупреждение. И не спорьте с этим, пожалуйста :) Единственная рациональная причина, по которой у Вас без команды Прервать могло не выводиться вообще ничего, это отсутствие на тот момент документов в журнале УчетТранспорта за текущую дату, т.е. отсутсвие чистоты эксперимента (если можно так выразиться).
А вот дальше не знаю что Вам и посоветовать. Ведь неизвестно чего Вы хотите... Проверить, есть ли хоть один документ с нужной машиной за текущую дату? Тогда код должен быть таким как у меня в Приложении. Собрать статистику по всем документам за этот день? Тогда код должен быть немного другим... В общем, определяйтесь, а мы поможем реализовать.

Приложение:

---------
В творчестве рождается истина

Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал)
Украина, Киев
Тел.: (044) 22-88-369
Организация: МАКСЕР, "1С:Предприятие" в Киеве
Адрес: г. Киев
WWW: www.makser.com.ua
----
Ответ отправлен: 15.02.2008, 18:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо что не оставляете мои вопросы без внимания =))


Вопрос № 123.230
Здравствуйте эксперты. Подскажите пожалуйста как в dbf-файл перенести дату со временем.
Я прописала код как в приложении, выгружаю все в файл, потом открыла через Excel этот файл и проверила, там те пораметры, которые у меня были в формате Дата+время перенеслись только в формате Дата. Как можно это исправить? В синтаксисе-пощнике ничего про это дельного не нашла.

Приложение:

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

Отвечает: Костюк Игорь Викторович
Здравствуйте, 2kasandra!
При объявлении формата полей DBF не надо указывать формат даты. Нужно использовать строковый формат.
ДБФ.поля.Добавить("TIME_IN","S",18); //дата+время выезда
Ответ отправил: Костюк Игорь Викторович (статус: 1-ый класс)
Ответ отправлен: 15.02.2008, 10:50

Отвечает: Крюков Р.А.
Здравствуйте, 2kasandra!
Причина Вашей проблемы в следующем DBF формат поддерживает структуру полей в виде
Структура записей с данными.
C Символьный
N Числовой { 0 - 9 }
L Логический { Y y T t N n F f ? } да/нет/неизвестно
M Примечание 10 цифр с номером блока в .dbt
D Дата ГГГГММДД
Поэтому в данном случае лучше хранить строковое представление и преобразовывать при необходимости.
---------
Отвечаю только на вопросы в тему.
Ответ отправил: Крюков Р.А. (статус: 4-ый класс)
Ответ отправлен: 15.02.2008, 10:59
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробный ответ.


Вопрос № 123.239
В общих таблицах (ТОРГ-12) вбивала руками дату и фамилию (1000 накладных в день). При сохранении конф - не сохраняется. В других таблицах (общих) сохраняется прекрасно. что это может быть?
Отправлен: 15.02.2008, 11:42
Вопрос задала: Подкосова Надежда (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vlad Skorochod
Здравствуйте, Подкосова Надежда!
Посмотрите в каталоге информационной базы есть папка EXTFORMS, а вней папка PRNFORMS. Там вы быстрее всего найдете файл 1CBT-12.MXL Это и есть таблица печатной формы ТОРГ-12. И исправлять необходимо в этой таблице.
Преимущество хранения измененной таблицы во внешнем файле, в том что при обновлении конфигурации он не изменится.
(А также в том, что изменять такую таблицу можно не внося изменения в конфигурацию и следовательно не прерывая для этого работу пользователей)

Дополнил ответ (в скобках)
-----
∙ Отредактировал: Сергей Максименко [Elric] (Профессионал)
∙ Дата редактирования: 15.02.2008, 17:40
Ответ отправил: Vlad Skorochod (статус: 9-ый класс)
Ответ отправлен: 15.02.2008, 11:57


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

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

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

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

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

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


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


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

В избранное