Народ помогите есть 2 документа приходная накладная и расходный кассовый для приходной накладной я понял ее движения но для расходно кассового не пойму по чему он мою таблицу значений тбДолги не видит . и она пустая( вот пример
Рег=ВремРегистры.ВзаиморасчетыПокупателей; Рег.УстановитьЗначениеФильтра("Фирма",Фирма,1); Рег.УстановитьЗначениеФильтра("ДокументДолга",ДокументОснование,1); Рег.УстановитьЗначениеФильтра("ВидНДС",ВидНДС,1); Если ИтогиАктуальны()=0 Тогда Рег.ВременныйРасчет(); ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент()); КонецЕсли;
тбДолги.ВыбратьСтроку(); Если ДокументОснование.Выбран()=1 Тогда Счет = ДокументОснование; Иначе Счет = ТекущийДокумент(); КонецЕсли; глПогашениеДолга(Контекст, тбДолги, Фирма, Контрагент, Договор, ВидНДС, ДокументОснование, СуммаПогашения);
Народ вопрос) хочу сделать чтоб у меня обработка загрузки сотрудников из дбф файла работала.Например если попался сотрудник с одинаковым ИНН тогда чтобы она не создавала клона а дополняла уже существующий элемент справочника.Подскажите метод)
//******************************************************************************** ****************** Перем Путь, ИмяФайла; Перем ДБФ; Функция ОткрытьБазу() ДБФ = СоздатьОбъект("XBase"); Попытка ДБФ.ОткрытьФайл(Путь+ИмяФайла,,0); Исключение Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецПопытки; Если ДБФ.Открыта() = 0 Тогда Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецЕсли;
Возврат 1; КонецФункции //******************************************************************************** ****************** Процедура Загрузить() Если ОткрытьБазу()=0 Тогда Возврат; КонецЕсли;
ДБФ.КодоваяСтраница(1); Сч=0; СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ИспользоватьДату(НачМесяца(ДатаВПериоде)); СпрРод=СоздатьОбъект("Справочник.Сотрудники"); ; // Цикл по записям ДБФ базы Пока ДБФ.ВКонце()=0 Цикл
Если КодРодителя<>0 Тогда Если СпрРод.НайтиПоКоду(КодРодителя,0)=1 Тогда тРодитель = СпрРод.ТекущийЭлемент(); СпрСотр.ИспользоватьРодителя(тРодитель); Иначе Сообщить("Не найден родитель с кодом "+ КодРодителя); КонецЕсли; Иначе СпрСотр.ИспользоватьРодителя(тРодитель); КонецЕсли;
Если СпрСотр.НайтиПоКоду(СокрЛП(ДБФ.Code),0)=0 Тогда Если ЭтоГруппа = 1 Тогда СпрСотр.НоваяГруппа(); СпрСотр.Новый(); Сообщить("пошла запись") Иначе СпрСотр.Новый(); КонецЕсли; текИНН = СокрЛП(ДБФ.INN); СпрСотр.Код =СокрЛП(ДБФ.Code); СпрСотр.Наименование= СокрЛП(ДБФ.Name0);
Если ЭтоГруппа = 0 Тогда СпрСотр.Имя = СокрЛП(ДБФ.Imya); //Имя СпрСотр.Фамилия = СокрЛП(ДБФ.Famil); //Фамилия СпрСотр.Отчество = СокрЛП(ДБФ.Otch); //Отчество
СпрСотр.Адрес = СокрЛП(ДБФ.Adres); //Адрес СпрСотр.Телефон = СокрЛП(ДБФ.Pfone); //Телефон Если ДБФ.Sex="М" Тогда СпрСотр.Пол=Перечисление.Пол.М; ИначеЕсли ДБФ.Sex="Ж" Тогда СпрСотр.Пол=Перечисление.Пол.Ж; КонецЕсли; СпрСотр.Должность = СокрЛП(ДБФ.Dol); //Должность
Привет всем народ Проблема не могу загрузить из выгруженной таблицы справочник сотрудников "Пишет код не уникален" Поля совпадают между выгрузкой и загрузкой совпадают а все равно не загружает с файла
Перем Путь, ИмяФайла; Перем ДБФ; Функция ОткрытьБазу() ДБФ = СоздатьОбъект("XBase"); Попытка ДБФ.ОткрытьФайл(Путь+ИмяФайла,,0); Исключение Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецПопытки; Если ДБФ.Открыта() = 0 Тогда Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецЕсли;
Возврат 1; КонецФункции Процедура Загрузить() Если ОткрытьБазу()=0 Тогда Возврат; КонецЕсли; ДБФ.КодоваяСтраница(1); Сч=0; СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ИспользоватьДату(НачМесяца(ДатаВПериоде)); СпрРод=СоздатьОбъект("Справочник.Сотрудники"); // Цикл по записям ДБФ базы Пока ДБФ.ВКонце()=0 Цикл
Если КодРодителя<>0 Тогда Если СпрРод.НайтиПоКоду(КодРодителя,0)=1 Тогда тРодитель = СпрРод.ТекущийЭлемент(); СпрСотр.ИспользоватьРодителя(тРодитель); Иначе Сообщить("Не найден родитель с кодом "+ КодРодителя); КонецЕсли; Иначе СпрСотр.ИспользоватьРодителя(тРодитель); КонецЕсли; Если ПустоеЗначение(СпрСотр)=0 Тогда СпрРод.Удалить(); СпрСотр.Удалить(); Иначе Если ЭтоГруппа = 1 Тогда СпрСотр.НоваяГруппа(); СпрСотр.Новый(); Иначе СпрСотр.Новый(); КонецЕсли;
Загвоздка была в выгрузке в этом куске кода не выбирались из за него элементы
Пока СпрСотры.ПолучитьЭлемент() > 0 Цикл Если СпрСотры.ПометкаУдаления()=1 Тогда Продолжить; КонецЕсли;
Если ПустоеЗначение(СпрСотры.ДатаПриема)=1 Тогда Продолжить; КонецЕсли; Если ПустоеЗначение(СпрСотры.ДатаУвольнения)=0 Тогда Если СпрСотры.ДатаУвольнения<'01.01.2007' Тогда Продолжить; КонецЕсли; КонецЕсли;
У вас неправильно организована выборка по справочнику. используется для записи периодических реквизитов. Поэтому непонятно задание для выборки.
Да я даже комментирую датувыборки(на форме Это поле отбора для периодических значений "Тип Дата") периодических элементов и действую. через ВыбратьЭлементы() ПолучитьЭлемент() но запись тоже не происходит колонки записываются а значения нет Не знаю вообще что думать(
Не записывает или записи пустые? Проверьте через КоличествоЗаписей(), КоличествоПолей() (в отладчике) факт занесения информации. Проверить можно через ПолучитьЗначениеПоля () информацию после записи. Можно использовать ф-цию АвтоСохранение(1) после создания базы (не надо использовать Записать()). Можно заменить на
ДБФ.УстановитьЗначениеПоля(Code,СпрСотры.Код)
Поля создаются а значения в них нет пустые столбцы
Попытка Если ФС.СуществуетФайл(Путь+"\"+ИмяФайла) = 1 Тогда ФС.УдалитьФайл(Путь+"\"+ИмяФайла); КонецЕсли; Исключение Сообщить("Невозможно перезаписать файл с предыдущей выгрузкой.","!!!"); Возврат; КонецПопытки;
ДБФ=СоздатьОбъект("XBase");
// Определяем поля ДБФ.ДобавитьПоле("Code","S", 10,); ДБФ.ДобавитьПоле("Name","S",30,);
Попытка ДБФ.СоздатьФайл(Путь+"\"+ИмяФайла); Исключение Предупреждение("Ошибка создания файла " + Путь+"\"+ИмяФайла); Возврат; КонецПопытки; Если ДБФ.Открыта() = 0 Тогда Предупреждение("Ошибка открытия файла " + Путь+"\"+ИмяФайла); Возврат; КонецЕсли;
Сч=0; СпрСотры=СоздатьОбъект("Справочник.Сотрудники"); //ДБФ.КодоваяСтраница(0); СпрСотры.ИспользоватьДату(ДатаВыборки); СпрСотры.ВыбратьЭлементы(); Пока СпрСотры.ПолучитьЭлемент() > 0 Цикл Если СпрСотры.ПометкаУдаления()=1 Тогда Продолжить; КонецЕсли;
Если ПустоеЗначение(СпрСотры.ДатаПриема)=1 Тогда Продолжить; КонецЕсли; Если ПустоеЗначение(СпрСотры.ДатаУвольнения)=0 Тогда Если СпрСотры.ДатаУвольнения<'01.01.2007' Тогда Продолжить; КонецЕсли; КонецЕсли;
Функция ОткрытьБазу() ДБФ = СоздатьОбъект("XBase"); Попытка ДБФ.ОткрытьФайл(Путь+ИмяФайла,,0); Исключение Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецПопытки; Если ДБФ.Открыта() = 0 Тогда Предупреждение("Ошибка отрытия файла " + Путь+ИмяФайла); Возврат 0; КонецЕсли;
Возврат 1; КонецФункции
Процедура УстановитьДату(ТЭлемент)
СпрСотр2=СоздатьОбъект("Справочник.Сотрудники"); Если СпрСотр2.НайтиЭлемент(ТЭлемент)>0 Тогда СпрСотр2.ПризнакИзмененияДоходаДляИндексации.Установить(ДБФ.DatZ,1); Сообщить("Установлен признак изменения дохода."); Иначе Сообщить("Не найден элемент "+ТЭлемент); КонецЕсли;
КонецПроцедуры
Процедура Загрузить() ОткрытьБазу(); Если ОткрытьБазу()=0 Тогда Возврат; КонецЕсли;
ДБФ.КодоваяСтраница(0); Сч=0; СпрСотр=СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ИспользоватьДату(НачМесяца(ДатаВПериоде)); // Цикл по записям ДБФ базы Пока ДБФ.ВКонце()=0 Цикл
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!