8.х ОБМЕН Обмен с буквенным кодом

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем IDOL, 26 мар 2012.

  1. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. Задача следующая мне необходимо загрузить данные из ТЗ в справочник я пишу следующее

    Код:
    Сотрудник = спрСотрудник.НайтиПоРеквизиту("УникальныйКод",стрТЗ.УникальныйКод); 
    потом если ссылка пустая то записую вроде все нормально но тут возникла проблема УникальныйКод это например AAAKz и AAAKZ

    при поиски он их видит как одинаковые хотя это совсем разные строки как при поиске можно указать чтоб AAAKz = AAAKz а AAAKz <> AAAKZ

    чтобы различить большие и малые буквы при поиске
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Чувствительность к регистру зависит от используемой СУБД. Файловый вариант, как я понимаю, нечувствителен. Для SQL версий зависит от настроек коллэйшена, но по умолчанию, вроде, MSQL - нечувствителен, Postre и DB2 - чувствителен.

    Так что какая-то доппроверка нужна.
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    По всей видимости использовать другой метод поиска, например по коду или наименованию, либо писать запрос.
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А что за реквизит УникальныйКод в справочнике, откуда берется и как заполняется?
  5. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    мне выгружают их из кадровой программы я их забираю и загружаю уже в свою задачу
    уникальный код это код базы которая мне выгружает по сути это дети сотрудников это одно что в этой таблице уникально и связать данные по нему только можно да вот загвоздка такая вроде мелкая получается. ну думаю как то преобразовать эти значения чтоб поиску понятней было только вот как пока не знаю
  6. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    может по фио искать? что-то сомневаюсь, что в рамках одного предприятия часто встречаются полные тески..
  7. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    а по задаче - можно придумать новый реквизит, в котором будет хранится строка с кодами символов:
    1) формируем уникальный реквизит
    2) ищем по этому реквизиту

    вот пример формирования реквизита:

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ТекСтрока = "";
    Для Сч=1 По СтрДлина(Реквизит1) Цикл
    
    ТекСтрока = ТекСтрока + Строка(КодСимвола(Реквизит1,Сч))+" - ";
    
    КонецЦикла;
    
    сообщить(ТекСтрока);
    
    КонецПроцедуры
  8. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Как вариант: запросом отобрать все элементы без учета регистра, а потом в полученной выборке просто проверять на равенство.
  9. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    А подскажите как мне эту загрузку сделать запросом у меня есть справочник и таблица значения и там и там есть реквизит УникальныйКод он буквенный мне необходимо перебрать справочник и если УникальныйКод не найден то строку записую в справочник как элемент

    встречаються у меня 4000 сотрудников и детей где то в 2 раза больше
  10. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    загрузка у меня происходит каждый день и ТЗ грузят ежедневно поэтому как присвоить уникальные символы если таблица постоянно заново загружается это не разовая загрузка
  11. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    ну можно связку ФИО+Дата рождения использовать. чета сомневаюсь, что найдутся тески с одинаковой датой рождения.
  12. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    упс.. правильно "Тёзка"
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Я хотел спросить: то откуда выгружают это 1С 8-й версии или нет?
    Если да - то там другие варианты есть.

    Если нет, то делайте приблизительно так:
    Код:
    Функция НайтиЭлемент(КодЭлемента)
    Запрос = Новый Запрос;
    Запрос.Текст = "выбрать спрСотрудник.Ссылка, спрСотрудник.УникальныйКод из спрСотрудник как спрСотрудник где спрСотрудник.УникальныйКод = &КодЭлемента";
    Запрос.УстановитьПараметр("КодЭлемента", КодЭлемента);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Результат = спрСотрудник.ПустаяСсылка();
    Пока Выборка.Следующий Цикл
    Если Выборка.УникальныйКод = КодЭлемента Тогда
    Результат = Выборка.Ссылка;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    Возврат Результат;
    КонецФункции
    
  14. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Использую 1С 8.2 Обычное приложение
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не совсем понял ответ.
    Еще раз: между какими программами осуществляется обмен?
  16. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    по методу SQL запроса забираю из СУБД Cache данные во временную таблицу и потом анализирую данные и те что надо записываю в свою базу 1С 8.2 учет услуг самописную
  17. TopicStarter Overlay
    IDOL
    Offline

    IDOL

    Регистрация:
    8 июл 2010
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Спасибо ВСЕМ за помошь а самое огромное спасибо Shurikvz запрос помог идеально

Поделиться этой страницей