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

Автор Тема: (Корректировка движений регистров)  (Прочитано 1095 раз)

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

Оффлайн GanG031

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток! Суть следующая: Есть обработка, которая выгружает определенные данные из регистра накопления, а именно: (Сотрудник, Сумма). Выгружает в текстовый файл txt, Разделяя записи точкой с запятой (;).
Требуется написать обработку, которая будет сравнивать эти выгруженные данные с таким же регистром в этой же конфигурации, а именно соответствие сумм для каждого сотрудника, и если сумма отличается, то изменять на ту, которая в находится в текстовом файле. Все это делается на управляемом приложении 8.3. Подскажите пожалуйста общий алгоритм действий. С тем, что бы написать обработку выгрузки в файл, я разобрался, теперь надо разобраться со сравнением, и изменением значений. Я это вижу примерно как: создаем запрос, где выбираем нужные данные из нужного нам регистра, и в цикле уже читаем нашу выборку, и наш внешний txt файл, и сравниваем значения, но как именно дать соответствие "Сотрудник" из регистра, сотруднику из txt файла, и сравнить суммы? Или может я что то не так понимаю? Помогите пожалуйста! Заранее спасибо!

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн KatiaP

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
Представление типа значения в тип строка, а затем сравнение строк

Онлайн Rasty

  • *****
  • Сообщений: 971
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Если у вас сотрудник выгружается Наименование, то делаете найти по наименование, если выгружается код сотрудника, то ищите по коду сотрудника, я бы на вашем месте, сначала парсил файл, создал табличку с данными из файла, потом запросом получал данные из регистра по сотрудникам из таблички, там же в запросе сравнивал сумму из регистра и из таблички (результат сравнения булево), потом методом НайтиСтроки() получал сотрудников, у которых суммы не равны, затем получаем менеджер записи регистра по данному сотруднику и изменяем сумму.
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

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

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

Оффлайн GanG031

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Начал делать так:

ПрочитанныйТекст = Новый ЧтениеТекста(ПутьКФайлу);
Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.Сотрудник,
      |   ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.Сумма
      |ИЗ
      |   РегистрНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий КАК ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий";
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();


эммм....а что дальше вот, понять не могу...

Онлайн Rasty

  • *****
  • Сообщений: 971
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
сначала парсите файл и создаёте ТаблицуЗначений в который заносите данные из файла
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн GanG031

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
сначала парсите файл и создаёте ТаблицуЗначений в который заносите данные из файла


Сделал вот так:

Текст = Новый ТекстовыйДокумент();
Текст.Прочитать("D:\1.txt");
СимволРазделитель = ";";
Для a = 1 По Текст.КоличествоСтрок() Цикл
   Стр = Текст.ПолучитьСтроку(a) ;
   
   ВременнаяСтрока = Стр;
   //найдем разделитель
   НомерСимвола = Найти(ВременнаяСтрока, СимволРазделитель);
   
   Период =  СокрЛП(Лев(ВременнаяСтрока, НомерСимвола -1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
   НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Сотрудник = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   ТабельныйНомер = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   СоставнаяЧасть = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Индексируется = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      
   Сумма =  Число (ВременнаяСтрока);
   
   ТаблицаЗначений = Новый ТаблицаЗначений;
   ТаблицаЗначений.Колонки.Добавить("Период");
   ТаблицаЗначений.Колонки.Добавить("Сотрудник");
   ТаблицаЗначений.Колонки.Добавить("ТабельныйНомер");
   ТаблицаЗначений.Колонки.Добавить("СоставнаяЧасть");
   ТаблицаЗначений.Колонки.Добавить("Индексируется");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
   
   Строка = ТаблицаЗначений.Добавить();
   Строка = стр;


Прошелся отладчиком по временным переменным, там все правильно. Подскажите дальнейшие действия. Вот я добавил таблицу значений, добавил колонки, добавил строки.....

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

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

начали за здравие,
закончили за упокой
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн GanG031

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Строка = стр;

начали за здравие,
закончили за упокой


подскажите, как правильно сделать...

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

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

Создали ТЗ и добавили в нее новую строку (Строка)
Теперь выше у вас сформировались 6 переменных, прочитанных из файла - ровно столько, сколько у вас колонок.
Обратите внимание что они типа Строка.
Т.е. например Сотрудника надо переделать в СправочникСсылка.Сотрудники,
а Индексируется - скорее всего в булево.

Строке ТЗ надо присвоить эти переменные (где надо меняя тип)
Строка.Период = Период
...
и т.д.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Документ "Корректировка амортизации"

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

Ответов: 1
Просмотров: 4700
Последний ответ 26 Июл 2011, 15:27
от Вероничка
Флаг "Ручная корректировка" в документе

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

Ответов: 2
Просмотров: 5433
Последний ответ 26 Окт 2012, 10:48
от Natylia89
Документ "Корректировка реализации" изменения в релизе 3.0.36.18 в параметре Отражать корректировку

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

Ответов: 0
Просмотров: 1654
Последний ответ 16 Дек 2014, 02:00
от gapp2009
Контроль остатков товаров в документе "Корректировка реализации"

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

Ответов: 1
Просмотров: 2035
Последний ответ 14 Май 2014, 12:29
от LadyGaGa2012
Ручная корректировка проводок в документе "Начисление зарплаты"

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

Ответов: 1
Просмотров: 6641
Последний ответ 04 Июн 2014, 13:05
от omv

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
158 Сообщений
alex0402
123 Сообщений
MuI_I_Ika MuI_I_Ika
55 Сообщений
Norfolk
52 Сообщений
LexaK
49 Сообщений
друган
20 Сообщений
alexandr_ll
20 Сообщений
AsadRoman
18 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal