Имя: Пароль:
1C
1С v8
Выбор паспортных данных контрагента
,
0 Валидатор
 
08.11.13
17:34
ВЫБРАТЬ
    ФизическиеЛица.Ссылка,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК Серия,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК Номер,
    ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
    ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
    ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
        ПО (ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = ФизическиеЛица.Ссылка)
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
        ПО (ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ФизическиеЛица.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
        ПО (ФизическиеЛица.Наименование = ФизическиеЛица.Ссылка)
ГДЕ
    ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &СсылкаНаОбъект
    И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.СпособВыплаты = &СпособВыплаты

почему этот запрос не цепляет паспортные данные?
1 Флудер
 
08.11.13
17:35
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
        ПО (ФизическиеЛица.Наименование = ФизическиеЛица.Ссылка) ???
Это пять!!!
2 Валидатор
 
08.11.13
17:36
(1) че не так?
3 ZOMI
 
08.11.13
17:36
чета мне это бросилось сразу
ПО (ФизическиеЛица.Наименование = ФизическиеЛица.Ссылка)
4 Maxus43
 
08.11.13
17:36
(2) по русски же... ссылку с наименованием сравниваешь?
5 User_Agronom
 
08.11.13
17:37
(1) Это нетиповая. У Справочника два поля, содержащих ссылку. А вдруг одна потеряется?
6 Валидатор
 
08.11.13
17:39
ВЫБРАТЬ
    ФизическиеЛица.Ссылка,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК Серия,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК Номер,
    ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
    ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
    ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
        ПО (ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = ФизическиеЛица.Ссылка)
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
        ПО (ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ФизическиеЛица.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
        ПО (ФизическиеЛица.Наименование = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо)
ГДЕ
    ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &СсылкаНаОбъект
    И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.СпособВыплаты = &СпособВыплаты

вот так точнее, то это другой код был оказывается)
7 Валидатор
 
08.11.13
17:40
блин я запутался в этих связаях вообще(((
8 Maxus43
 
08.11.13
17:40
ПО (ФизическиеЛица.ССЫЛКАЕДРИТЬМАДРИТЬ = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо)
9 Валидатор
 
08.11.13
17:40
какие связи поставить чтобы брались данные указанных лиц из документа?
10 Валидатор
 
08.11.13
17:44
и еще вопрос, почему потом при открытии файла ДБФ у меня с кодировкой траблы появляются?
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если НЕ СсылкаНаОбъект.СпособВыплаты = Перечисления.СпособыВыплатыЗарплаты.ЧерезБанк Тогда
        Сообщить("Вы выбрали документ у которого способ оплаты не через банк, выберите другой документ");
        Возврат
    КонецЕсли;

    БД = Новый XBase;
    БД.Поля.Добавить("P_A_Number", "S", 30);
    БД.поля.Добавить("SUMMA","N", 10, 2);
    БД.Поля.Добавить("FIO", "S", 40);
    БД.Поля.Добавить("PASSPORT", "S", 15);
    
    БД.СоздатьФайл(ПутьКФайлу + "/" + НаименованиеФайла);
    
    СпособВыплаты = Перечисления.СпособыВыплатыЗарплаты.ЧерезБанк;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка,
                   |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия КАК Серия,
                   |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер КАК Номер,
                   |    ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
                   |    ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
                   |    ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо
                   |ИЗ
                   |    РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
                   |            ПО (ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = ФизическиеЛица.Ссылка)
                   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
                   |            ПО (ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ФизическиеЛица.Ссылка)
                   |        ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
                   |ГДЕ
                   |    ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &СсылкаНаОбъект
                   |    И ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.СпособВыплаты = &СпособВыплаты";
    
    Запрос.УстановитьПараметр("СсылкаНаОбъект", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("СпособВыплаты", СпособВыплаты);    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();
    
    Для каждого Строка из Выборка Цикл
        БД.Добавить();
        БД.P_A_Number = СокрЛП(Строка.НомерЛицевогоСчета);
        БД.FIO = СокрЛП(Строка.ФизЛицо);
        БД.SUMMA = Строка.Сумма;  
        БД.PASSPORT = " " + Строка.Серия + " " + Строка.Номер;
        БД.АвтоСохранение = Истина;
    КонецЦикла;    
    
    БД.ЗакрытьФайл();
    Сообщить("Готово, файл создан в " + ПутьКФайлу);
    СохранитьЗначение("ПутьКФайлу", ПутьКФайлу);
    
КонецПроцедуры


Процедура ВыборФайла(Элемент)
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    
    ДиалогВыбора.Фильтр     = "Файл данных (*.dbf)|*.dbf";
    ДиалогВыбора.Расширение = "dbf";
    ДиалогВыбора.Заголовок ="Выберите место для сохранения файла";
    ДиалогВыбора.ПредварительныйПросмотр     = Ложь;
    ДиалогВыбора.ИндексФильтра               = 0;
    ДиалогВыбора.ПолноеИмяФайла              = НаименованиеФайла;
    ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь;
    ДиалогВыбора.МножественныйВыбор          = Ложь;
    ДиалогВыбора.Каталог = ложь;
    Если ДиалогВыбора.Выбрать() Тогда
        Элемент.Значение = ДиалогВыбора.Каталог;
    КонецЕсли;
КонецПроцедуры
11 Валидатор
 
08.11.13
17:47
как при создании дбф кодировку задать? после Новый Xbase?
12 Валидатор
 
08.11.13
17:49
и какую кодировку можно задать в новосоздаваемом дбф файле, если он потом открывается в DBFViewer а через другие программы текст превращается в крокозяблы?
13 Валидатор
 
08.11.13
17:51
все нашел
14 piter3
 
08.11.13
17:52
XBase.Кодировка (XBase.Encoding)
XBase (XBase)
Кодировка (Encoding)
Использование:

Чтение и запись.
Описание:

Тип: КодировкаXBase.
Определяет режим кодировки базы.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.