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

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

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

перезапись реквизита справочника

A-Lena
читатель
офлайн
Дата регистрации: 15.11.2005
Сообщений: 59
Пост №1
 
14.02.2007 07:41

"Добрый день, подскажите пожалуйста, как можно обратиться к текущему элементу справчника, изменить его реквизит и записать?<br>Вот код обработки<br><br>Если дог=ДогАктСокр Тогда //если равно, то заменяем текущий договор (наименование) на догАкт<br> СпрДоговоры.ИспользоватьВладельца(СпрКонтра);<br> СпрДоговоры.НайтиПоНаименованию(дог,1,1);<br> ТекДог = СпрДоговоры.ТекущийЭлемент(); <br>// как здесь изменить текщий элемент?<br> СпрДоговоры.Наименование = догАкт;<br> СпрДоговоры.Записать();<br>КонецЕсли;"

tat_1c
читатель
офлайн
Дата регистрации: 16.05.2005
Сообщений: 33
Пост №2
 
14.02.2007 08:36

" ТекДог.Наименование = догАкт;<br> ТекДог.Записать();<br>"

A-Lena
читатель
офлайн
Дата регистрации: 15.11.2005
Сообщений: 59
Пост №3
 
14.02.2007 08:49

"Так пробывала - не получается. Ошибка "ТекДог.Наименование = догАкт; Не выбран элемент!""

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №4
 
14.02.2007 10:13

"Если Вы сравниваете наименование текущего реквизита дог=ДогАктСокр,<br>то зачем Вы потом его ищите, да еще устанавливаете Родителя.<br>> СпрДоговоры.НайтиПоНаименованию(дог,1,1);<br>><br><br>Скажите ,что в принципе Вам нужно сделать?"

A-Lena
читатель
офлайн
Дата регистрации: 15.11.2005
Сообщений: 59
Пост №5
 
14.02.2007 10:33

Мне нужно сравнить дог с ДогАктСокр и если они равны, то наименованию дог присвоить наименование ДогАктСокр<br>

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №6
 
14.02.2007 12:05

"> Мне нужно сравнить дог с ДогАктСокр и если они равны, то наименованию дог присвоить наименование ДогАктСокр<br>> <br><br>Сравнить по какому признаку? А то в Вашем случае получается, что Вы сравниваете договора по наименованию и если наименование равны, то присваваете первому второе.<br>Вот пример замены названия по всему справочнику , без учета владельца, поиск по не точному соотвествию наименования.<br><br>Спр=СоздатьОБъект("Справочник.Договоры");<br>ДогАктСокр="Основной";<br>Дог="Другой";<br>пока Спр.НайтиПонаименованию(ДогАктСокр,0,0)=1 цикл<br> Спр.Наименование=Дог;<br> Спр.Записать();<br>конеццикла;"

A-Lena
читатель
офлайн
Дата регистрации: 15.11.2005
Сообщений: 59
Пост №7
 
14.02.2007 12:14

Ошиблась: присвоить наименование догАкт.<br>ДогАктСокр-это первых 5 символов нового договора догАкт, который берется из таблицы dbf. и если наименование старого договора (дог) равно первым 5 символам нового (ДогАктСокр), то старый (наименование) заменяем на новый (догАкт).<br><br>Сравниваю на самом деле наименование. Просто такая ситуация. Мы формируем акты и привязываем контрагента с договором (например 12345), а потом заказчик подписывает договор и присваивает через "/" свой номер (12345/67894). В результате получается что наш договор (12345) мы должны поменять на (12345/67894).

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №8
 
14.02.2007 12:36

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

A-Lena
читатель
офлайн
Дата регистрации: 15.11.2005
Сообщений: 59
Пост №9
 
14.02.2007 13:02

Огромное спасибо. Сейчас буду пробовать.

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

Читают тему:

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