Цитата(Pepe @ 22.06.13, 22:03)
У вас неправильно организована выборка по справочнику. используется для записи периодических реквизитов. Поэтому непонятно задание для выборки.
"Описание встроенного языка" почему-то несогласно с процитированным. А именно:
Цитата
ИспользоватьДату
Установить дату выборки периодических реквизитов справочника.
Синтаксис:
ИспользоватьДату[<Дата>, <УстСразу>)
Англоязычный синоним: UseDate
Параметры:
<Дата> Необязательный параметр. Выражение со значением типа «дата».
<УстСразу> Необязательный параметр. Число: если 1, то дата, переданная в качестве параметра, будет установлена уже в текущей выборке; если 0 — то дата, переданная в качестве параметра будет установлена при следующей выборке. Значение по умолчанию — 0. Например:если "Цена" — периодический реквизит справочника, тоСпр.ИспользоватьДату(Д1, 1);Спр.ВыбратьЭлементы();А = Спр.Цена; — возвращает значение на дату Д1Спр.ИспользоватьДату(Д2, 1);Б = Спр.Цена; — возвращает значение на дату Д2!Если <УстСразу> — 0 (или опущен), тоСпр.ИспользоватьДату(Д1);Спр.ВыбратьЭлементы();А = Спр.Цена; — возвращает значение на дату Д1Спр.ИспользоватьДату(Д2);Б=Спр.Цена; — тоже возвращает значение на дату Д1!Спр.ВыбратьЭлементы();В=Спр.Цена; — только теперь возвращает значение на Д2.
Возвращаемое значение:
Текущее значение используемой даты (на момент до исполнения метода).
Описание:
Метод ИспользоватьДату устанавливает для объекта типа «справочник» дату, на которую будут в дальнейшем выбираться (или записываться) значения периодических реквизитов справочника.
Это очень важный метод, о котором необходимо всегда помнить при работе со справочниками, имеющими периодические реквизиты. Если он пропущен, то чначения выбранных периодических реквизитов справочника будут не определены.
Замечание: Если к объекту типа «справочник» однажды применен метод ИспользоватьДату, то в дальнейшем, чтобы выбирать значения периодических реквизитов справочника, нельзя применять к этому же объекту методы Получить и Установить, т. е. в такой последовательности эти методы несовместимы.
Замечание: Данный метод имеет следующую особенность применения: его нельзя использовать «через две точки». Например, если в документе с именем "ДокНакл" есть реквизит "Фирма" типа «справочник», у которого есть периодические реквизиты НДС и СН, то следующий оператор:
ДокНакл.Фирма.ИспользоватьДату(Дата);
работать не будет. В данном случае следует просто использовать промежуточную переменную, например:
ФирДок = ДокНакл.Фирма;
ФирДок.ИспользоватьДату(РабочаяДата());
НДСДок = ФирДок.НДС;
Пример:
// Здесь мы работаем в локальном контексте модуля Формы
// редактирования документа.
// Реквизит "Должность" в документе является справочником,
// у которого "МинОкл" - периодический реквизит
Длж = СоздатьОбъект("Справочник.Должности");
Длж.ИспользоватьДату(ДатаДок);
Длж.НайтиЭлемент(Должность);
Сообщить(Длж.Наименование + " Минимальный оклад" + Строка(Длж.МинОкл));
См. также: Получить, Установить, НайтиЭлемент, ВыбратьЭлементы
Цитата(igmig65 @ 25.06.13, 9:30)
Во первых зачем записывать дбф каждую строку, тоесть в цикле, это раз. ...
Затем, что иначе заполненная новая запись не будет сохранена (добавлена) в файл (если не включен режим автосохранения).
Цитата
И еще, не знаю может это влияет и на запись, на открытие влияет точно - имя файла максимум 8 символов.
кстати, да.
(прим.: запись - это тоже после открытия))