Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

ЗиК 7.7, 288 рел. Спр.Сотрудники. Замена значения в Адресной строке.

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №1
 
18.06.2009 11:50

"Добрый день! Ситуация следующая. У нас в спр. "Сотрудники" (после заполнения)в поле адреса вместо наименования региона стоит его код (нпр, 78, что означает Санкт-Петербург г). Так вот, хочу написать обработку, которая меняет(преобразует) этот код на наименование. Из справочника "Сотрудники" я его вытаскиваю: <br>----------<br>Сп = СоздатьОбъект("Справочник.Сотрудники");<br>АдресСписком = глРазложить(Сп.АдресПрописка); <br>Регион = АдресСписком.ПолучитьЗначение(3); // регион <br>-----------<br>А как мне его теперь заменить на наименование в самом справочнике Сотрудники? <br>Пробовал с помощью:<br>-----------------<br> Регион = СтрЗаменить(Регион, "78","Санкт-Петербург г");<br>------------<br>Да только ничего не получается..(как указать, что изменить нужно в самом справочнике?) Может есть какая-то функция преобразования ??? "

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №2
 
18.06.2009 12:11

а 1С-ная функция глПредставлениеАдреса разве не преобразовывает АдресСписком в очеловеченное представление?

Svetlana_E
читатель
офлайн
Дата регистрации: 30.08.2006
Сообщений: 2645
Пост №3
 
18.06.2009 15:41

"> а 1С-ная функция глПредставлениеАдреса разве не преобразовывает АдресСписком в очеловеченное представление?<br>Если Адрес набит в соответствии с форматом ФНС - преобразовывает. <br>Но я так понимаю, что автору нужно иное. Исправить программно неверно введенный адрес.<br>Продолжим ваш текст:<br><br>Сп = СоздатьОбъект("Справочник.Сотрудники");<br>Сп.ВыбратьЭлементы(0);<br>Пока Сп.ПолучитьЭлемент()=1 Цикл<br> Если Сп.ЭтоГруппа()=1 Тогда<br>       Продолжить;<br> КонецЕсли;<br> АдресСписком = глРазложить(Сп.АдресПрописка); ///разложили строку в список значений.<br> АдресСписком.УстановитьЗначение(3,"Санкт-Петербург"); ///Меняете регион<br> АдресНовый="," + СокрЛП(АдресСписком.ПолучитьЗначение(2)) +<br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(3)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(4)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(5)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(6)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(7)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(8)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(9)) + <br> "," + СокрЛП(АдресСписком.ПолучитьЗначение(10)); <br> Сп.АдресПрописка=АдресНовый;<br> Сп.Записать();<br>КонецЦикла;<br><br>Что-то типа этого. Не проверяла. Может надо добавить условия смены адреса. Еще проверьте индексы - должно быть так:<br>                        "," + СокрЛП(Индекс) +<br> "," + СокрЛП(Регион) + <br> "," + СокрЛП(Район) + <br> "," + СокрЛП(Город) + <br> "," + СокрЛП(НасПункт) + <br> "," + СокрЛП(Улица) + <br> "," + СокрЛП(Дом) + <br> "," + СокрЛП(Корпус) + <br> "," + СокрЛП(Квартира);<br>"

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №4
 
18.06.2009 17:45

БОЛЬШОЕ СПАСИБО! Все получилось!

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №5
 
18.06.2009 20:16

Странно. Если он вбит не в формате ФНС, как он в СписокЗначений раскладывается?

Svetlana_E
читатель
офлайн
Дата регистрации: 30.08.2006
Сообщений: 2645
Пост №6
 
18.06.2009 20:30

Просто, я так понимаю, функция глПредставлениеАдреса не просто раскладывает в список, а берет строчку, делит по запятым и к определенным позициям добавляет слова "д.","кв." и убирает первую запятую и возвращает опять строку - и если поля оказываются не на своем месте, то получается билиберда. Количество запятых может оказаться неверным и тогда на месте дома может оказаться, н-р, улица.<br>Именно это я имела в виду, что количество запятых и позиций элементов должно соответствовать формату ФНС.<br>Может я и не права, но сталкивалась с таким - особенно при экспорте справочника сотрудников из каких-либо внешних источников - сначала приходилось приводить в порядок строку адреса, а потом уж загружать

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №7
 
19.06.2009 09:48

Ааа, ну может быть. Кстати... я делал однажды одну полезную штуку, которая адреса из формата ФНС преобразует в нормальный человеческий вид, то есть, адрес из формата: "НазваниеГорода г., НазваниеУлицы ул." преобразуется в тот вид, который нормальные люди используют. Для этого я добавил отдельный dbf, в котором описал правила преобразования. В общем, если кому интересно будет, поделюсь

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №8
 
02.07.2009 12:17

Добрый день, Светлана! Я уже непосредственно к Вам обращаюсь, поскольку Вы в курсе наших проблем. Я, наверное, никогда с Вами не рассчитаюсь..... ))) <br>Опять возвращаясь к нашему спр. Сотрудники, столкнулись еще с одним вопросом: в паспортных данных в поле "серия" при условии, что вид документа "Паспорт гражданина России" у нас стоит, нпр, строка вида "4107" , а по шаблону, насколько я знаю, вид должен быть таким "41 07", т.е. через пробел. Можно ли как-то преобразовать эту строку к такому виду???

Svetlana_E
читатель
офлайн
Дата регистрации: 30.08.2006
Сообщений: 2645
Пост №9
 
02.07.2009 15:30

"Можно очень похоже на предыдущее:<br><br>Сп = СоздатьОбъект("Справочник.Сотрудники");<br>Сп.ВыбратьЭлементы(0);<br>Пока Сп.ПолучитьЭлемент()=1 Цикл<br> Если Сп.ЭтоГруппа()=1 Тогда<br>      Продолжить;<br> КонецЕсли;<br> Паспорт = глРазложить(Сп.ДокументУдЛичность); ///разложили строку в список значений.<br>Если Паспорт.ПолучитьЗначение(1)="Паспорт гражданина России" Тогда<br> Серия= Паспорт.ПолучитьЗначение(2);<br> Паспорт.УстановитьЗначение(2,Лев(Серия,2)+" "+Прав(Серия,2)); <br> ПаспортНовый="""";<br> Для Цикл к=1 По Паспорт.РазмерСписка() Цикл // просто не знаю, сколько там элементов<br> ПаспортНовый+ Паспорт.ПолучитьЗначение(к); <br> КонецЦикла<br> Сп.ДокументУдЛичность=ПаспортНовый;<br> Сп.Записать();<br>КонецЕсли;<br>КонецЦикла;<br><br>Я не проверяю, есть ли там на самом деле серия, считаю, что есть. Если надо вставьте проверку."

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация