Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 06:12
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Заблокировать ячейку в табличной форме документа  (Прочитано 7213 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 3030

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 1
  • КПД: 3%
  • Регистрация: 2012-11-08
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток! Задача состоит в следующем: в форме документа есть колонка Номенклатура. Нужно сделать так, чтобы после выбора из списка какой-либо номенклатуры данная ячейка блокировалась.

Что я пробовал:

Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)   
     Если ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура = Неопределено Тогда
  СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
  СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Дата,Элемент.Значение);
  РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
     Иначе ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура.Доступность = Ложь;
     КонецЕсли;
КонецПроцедуры

Данный вариант не подходит, так как блокируется вся колонка "Номенклатура", и при добавлении новой строки эта колонка уже недоступна.

Пробовал организовать цикл, но ничего не вышло. Прошу помощи)

Конфигурация прилагается.


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Все будет несколько сложнее. И код у вас неправильный. ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура никогда не будет равно Неопределено, поскольку это колонка табличного поля, Неопределено она не будет ни при каких условиях.
Скачал вашу конфигурацию, сейчас посмотрю.
Добавлено: 08 Ноя 2012, 13:48

P.S. в следующий раз, если выкладываете cf сразу пишите, что платформа 8.1. Хорошо я у себя не снес еще )) А то не смог бы восстановить :)

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Попробуйте обработать событие ПриВыводеСтроки()
например так:

Если ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда
     ОформлениеСтроки.Ячейки.Номенклатура.ТолькоПросмотр = Истина;
КонецЕсли;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
cska-fanat-kz, я так понимаю, это вариант не пойдет, поскольку доступность надо снимать сразу же после выбора номенклатуры. То есть, я себе решение вижу так: будет связка из обработчиков 2-ух событий - при изменении номенклатуры и при выводе строки (либо при активации). Первое, чтобы снять доступность сразу же, второе, чтобы это дело отрабатывалось при открытии сохраненного документа. 
Добавлено: 08 Ноя 2012, 14:08

хотя наверно при выводе строки вызывается при изменении значения в ячейки. туплю наверно... сейчас проверю.

Оффлайн 3030

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 1
  • КПД: 3%
  • Регистрация: 2012-11-08
  • Сайт: 
  • Профессия: Ученик 1С
Вариант от cska-fanat-kz работает. Спасибо)
Я вообще думал каким нибудь образом запустить цикл, чтобы каждая строка пропускалась через цикл, но вроде как в табличном поле так делать нельзя, или я прочитал что то неправильно?

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
работает
а почему у меня не работает? :dfbsdfbsdf:
или задача снять доступность сразу же после заполнения значения не стоит? можно это сделать после завершения редактирования ячейки (то бишь после перехода в другую ячейку)?
табличном поле так делать нельзя
почему же нельзя, можно. стандартный цикл Для Каждого

Оффлайн 3030

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 1
  • КПД: 3%
  • Регистрация: 2012-11-08
  • Сайт: 
  • Профессия: Ученик 1С
Пробовал вот такой вот цикл, писал что-то про итератор.
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = ЭлементыФормы.ПереченьНоменклатуры.ТекущаяСтрока;
Таблица = ПереченьНоменклатуры;
Для Каждого ТекущаяСтрока ИЗ Таблица Цикл
Если ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура = Неопределено Тогда
   СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
   СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Дата,Элемент.Значение);
   РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
   Иначе
   ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура.Доступность = Ложь;
   КонецЕсли;
   КонецЦикла;


Да,да, знаю, лишние переменные, но мне так привычнее, не узнал еще возможности 1с))

Цитировать
задача снять доступность сразу же после заполнения значения не стоит?
верно, такая задача не стоит

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Если ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура = Неопределено Тогда
про это я уже писал. условие никогда не примет значение ЛОЖЬ.
А в целом, вообще не понял, что вы хотели этим циклом сделать. Вы просто повторили действия внутри цикла столько раз, сколько строк в вашей таблице, вот и все.

Добавлено: 08 Ноя 2012, 14:51

Поправка: конечно условие никогда не примет значение ИСТИНА. Там всегда ЛОЖЬ. Поскольку ЭлементыФормы.ПереченьНоменклатуры.Колонки.Номенклатура не равно Неопределено

Последний раз редактировалось: mixqn; 08 Ноя 2012, 14:51

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
3030, что должно выполниться в этом страшном цикле?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн 3030

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: 1
  • КПД: 3%
  • Регистрация: 2012-11-08
  • Сайт: 
  • Профессия: Ученик 1С
Работало, только после заполнения первой строки в следующих строках уже изначально блочило колонку "номенклатура". А циклом я хотел пройтись по каждой строке. В общем, ошибка моя в том, что не знал, как добраться только до ячейки, и добирался и блочил сразу всю колонку. В общем, чувствую, еще всем я тут надоем своими вопросами)

что должно выполниться в этом страшном цикле?
Тоже, что и у вас (как я думал). Но ваш ход гораздо проще, разумнее и изящнее. Спасибо)


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4488
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7760
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4792
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

Автор ppkmliteРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 8561
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

Автор MKozzlikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7352
Последний ответ 03 Фев 2012, 17:27
от Dinah

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
62 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 241
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal